2015-03-26 9 views
6

Ich bin neu in XMPP. Ich verwende Smack android für die Bereitstellung von Chat in meiner Anwendung.Wie verwende ich XEP 198 (Stream Management) von Smack 4.1?

In Smack 4.1, Unterstützung für Stream Management hinzugefügt wird, so habe ich

XMPPTCPConnection.setUseStreamManagementDefault(true); 

dies zu ermöglichen, und ich bin immer:

03-27 00:50:54.945: D/SMACK(16991): SENT (5): <enable xmlns='urn:xmpp:sm:3' resume='true'/> 
03-27 00:50:55.740: D/SMACK(16991): RECV (5): <enabled xmlns='urn:xmpp:sm:3' id='g2gCbQAAAAVTbWFja2gDYgAABZNiAAYRuGIAAW06' resume='true' max='300'/> 

So XEP 198 arbeitet sowohl auf meinem Client und der Server (Ejabberd 15).

Aber meine Frage ist -> muss ich meinen eigenen Code schreiben, um die Nachrichten (die nicht vom Server bestätigt werden) in meine android sqlite Datenbank zu speichern und sie manuell erneut zu senden mit chat.sendMessage(); wenn die Verbindung wieder hergestellt wird? ODER wird dieser Nachsendevorgang von Smack selbst durchgeführt?

ich nicht alle Unterlagen bekommen für XEP mit 198 auf Smack 4.1 andere als XMPPTCPConnection.setUseStreamManagementDefault(true);

Gibt es eine Methode von Smack zur Verfügung, die <a/> vom Server empfangen zu hören?

Ich habe Quellcode von yaxim gesehen, aber es scheint, dass sie ihren eigenen Code geschrieben haben (indem sie Pakete senden), um XEP 198 zu unterstützen, das jetzt in Smack 4.1 erfolgt.

Bitte helfen Sie mir, was ich tun soll, nachdem ich diese Unterstützung aktiviert habe?

+0

Ich weiß, dass die Dokumentation über Stream Management fehlt. Aber da Smack Open Source ist, könnte man versuchen, wenn man sich die Quelle anschaut, ein paar Fragen beantworten. – Flow

Antwort

5
  1. Natürlich müssen Sie Ihre ausstehenden Nachrichten speichern und sie erneut senden, wenn die Verbindung wieder hergestellt ist.
  2. Wir haben eine Möglichkeit, Nachrichten zu hören. Schauen Sie sich das an, https://stackoverflow.com/a/37289804/4085494
+0

wenn ich offline bin, dass ejabbered Forward-Nachricht via FCM wiederholen, wenn ich in ejabbered Kanal online bin, also, was muss ich in meinem Fall tun? –

Verwandte Themen