我是 XMPP 的新手。我在 android 上使用 smack 在我的应用程序中提供聊天。
在 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 自己完成的?
我没有得到任何关于在 smack 4.1 上使用 XEP 198 的文档,除了 XMPPTCPConnection.setUseStreamManagementDefault(true);
smack 是否有任何方法可用于收听<a/>
从服务器接收到的信息?
我看过yaxim的源代码,但似乎他们已经编写了自己的代码(通过发送数据包)来支持现在在 Smack 4.1 中完成的 XEP 198。
请帮我解决启用此支持后我应该做什么?