Как использовать XEP 198 (Stream Management) из smack 4.1?

Я новичок в XMPP. Я использую smack на Android для обеспечения чата в моем приложении.

В smack 4.1 добавлена ​​поддержка управления потоками, поэтому я использовал

  XMPPTCPConnection.setUseStreamManagementDefault(true);

чтобы включить это, и я получаю:

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

Итак, XEP 198 отлично работает как на моем клиенте, так и на сервере (ejabberd 15).

Но мой вопрос -> я должен написать свой собственный код для хранения сообщений (которые не были подтверждены сервером) в моей базе данных android sqlite и вручную отправить их, используя chat.sendMessage(); когда соединение переподключено? ИЛИ эта повторная отправка выполняется самим Smack?

Я не получил никакой документации для использования XEP 198 на smack 4.1, кроме XMPPTCPConnection.setUseStreamManagementDefault(true);

Есть ли какой-нибудь метод от smack для прослушивания <a/> получил с сервера?

Я видел исходный код yaxim, но кажется, что они написали свой собственный код (отправляя пакеты) для поддержки XEP 198, который теперь делается в Smack 4.1.

Пожалуйста, помогите мне с тем, что я должен сделать после включения этой поддержки?

1 ответ

  1. Конечно, вам нужно сохранить ожидающие сообщения и отправить их снова, когда соединение вернется.
  2. У нас есть один способ прослушать сообщение. Проверьте это, /questions/44832315/kvitantsiya-kvitantsii-servera-android/44832326#44832326
Другие вопросы по тегам