2015-03-26 20 views
6

Sono nuovo di XMPP. Sto usando smack su Android per fornire chat nella mia applicazione.Come utilizzare XEP 198 (Gestione stream) da smack 4.1?

In schiaffo 4.1, viene aggiunto il supporto per la gestione flusso quindi ho usato

XMPPTCPConnection.setUseStreamManagementDefault(true); 

per abilitare questa e sto ricevendo:

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'/> 

Quindi, XEP 198 sta lavorando bene sia sul mio client e server (ejabberd 15).

Ma la mia domanda è -> devo scrivere il mio codice per la memorizzazione dei messaggi (che non sono riconosciuti dal server) nel mio database SQLite Android e inviare di nuovo manualmente utilizzando chat.sendMessage(); quando la connessione viene ricollegato? O questa parte del rinvio è fatta da Smack stesso?

mi hanno dato tutta la documentazione per l'utilizzo XEP 198 sul bel 4,1 diversa XMPPTCPConnection.setUseStreamManagementDefault(true);

Esiste un metodo a disposizione da schiaffo per l'ascolto della <a/> ricevuto dal server?

Ho visto il codice sorgente di yaxim, ma sembra che abbiano scritto il proprio codice (inviando pacchetti) per supportare XEP 198, che ora viene eseguito in Smack 4.1.

Per favore aiutatemi con cosa devo fare dopo aver abilitato questo supporto?

+0

So che manca la documentazione su Gestione flusso. Ma dal momento che Smack è open source, puoi provare se guardare la fonte risponde ad alcune domande. – Flow

risposta

5
  1. Ovviamente è necessario memorizzare i messaggi in sospeso e inviarli di nuovo quando la connessione è tornata.
  2. Abbiamo un modo per ascoltare messaggi ack. Date un'occhiata a questo, https://stackoverflow.com/a/37289804/4085494
+0

quando sono offline quella volta che il messaggio inoltrato tramite e-mail tramite FCM viene ripetuto quando arrivo online nel canale ejabber, quindi, cosa devo fare nel mio caso? –