2015-03-26 2 views
6

Я новичок в XMPP. Я использую smack для android для предоставления чата в своем приложении.Как использовать XEP 198 (Управление потоками) от smack 4.1?

В привкусом 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).

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

я не получил какую-либо документацию для использования XEP 198 на привкус 4,1 других, чем XMPPTCPConnection.setUseStreamManagementDefault(true);

Есть ли метод, доступные от шлепок для прослушивания <a/>, полученных от сервера?

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

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

+0

Я знаю, что документация об управлении потоком отсутствует. Но поскольку Smack является открытым исходным кодом, вы можете попробовать, если посмотреть на источник, на несколько вопросов. – Flow

ответ

5
  1. Конечно, вам нужно сохранить ожидающие сообщения и отправить их при возврате соединения.
  2. У нас есть один способ прослушивания сообщения. Проверьте это, https://stackoverflow.com/a/37289804/4085494
+0

, когда я в автономном режиме, что время ejabbered прямое сообщение через FCM повторяются, когда я прихожу онлайн в ejabbered канал, так что я должен делать в моем случае? –

Смежные вопросы