2016-05-12 30 views
1

Derzeit speichert die ejabberd-Serverinstanz, die für unsere App ausgeführt wird, keine Offline-Nachrichten in mysql. Beispiel: Benutzer 'foo' sendet eine Nachricht an eine andere Benutzerleiste in seinem Dienstplan. Die Nachricht wird nicht in der mit ejabberd konfigurierten Archivtabelle der mysql-Datenbank angezeigt, bis sie mit dem ejabberd-Server verbunden ist.Ejabberd - Offline-Nachrichten in mysql speichern

Das bedeutet, dass die Nachricht von foo in der mnesia-Tabelle gespeichert wird, bis bar online ist, und dann in der Archivtabelle von mysql. Ich muss auf diese Daten zugreifen, bevor der Balken sich verbindet. Zwei Möglichkeiten: -

  • Zugriff Mnesien-Datenbank und Abfrage der Nachricht. Ich bin mit Rahmen zu spielen und ist nicht sicher, wie Mnesia zugreifen zu können, ohne von der Bar Konto anmelden und Zugriff auf alle Nachrichten
  • Shop Offline-Nachrichten in mysql

Welcher Weg ist besser, und wie man das gleiche erreichen?

(Annahme hier ist offline Daten in Mnesia gespeichert werden. Ich überprüfte, haben die gleichen, aber Online-Artikel auf den gleichen Punkt)

UPDATE

mod_offline gesetzt wurde nur auf ODBC. Was ich habe gerade herausgefunden, dass Offline-Nachrichten in der Spool-Tabelle gespeichert werden, bis der Benutzer auf ejabberd verbindet, wonach sie zu Archivtabelle

Antwort

0

In Ihrer ejabberd.yml (Konfigurationsdatei) die folgenden Lines-

mod_offline: 
    access_max_user_messages: max_user_offline_messages 
    db_type: odbc 
gedrückt werden

Es funktioniert, wenn ejabberd mit mysql verbunden ist. ejabberd mysql connection configuration is here