我是一名新手,想了解XMPP。我在我的应用程序中使用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 自己完成的?
除了 XMPPTCPConnection.setUseStreamManagementDefault(true);
外,我没有找到关于在 Smack 4.1 上使用 XEP 198 的任何文档。
有没有从 Smack 接收服务器收到的 <a/>
的可用方法?
我已经看过 yaxim 的源代码,但是它们似乎编写了自己的代码(通过发送数据包)来支持 XEP 198,而这现在在 Smack 4.1 中已经完成了。
请告诉我在启用此支持后应该做什么?