Android 如何使用smack 4.1中的XEP 198(流管理)?

Android 如何使用smack 4.1中的XEP 198(流管理)?,android,xmpp,ejabberd,smack,stream-management,Android,Xmpp,Ejabberd,Smack,Stream Management,我是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:5

我是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'/>
03-27 00:50:54.945:D/SMACK(16991):发送(5):
03-27 00:50:55.740:D/SMACK(16991):RECV(5):
因此,XEP198在我的客户机和服务器上都运行良好(Ejabberd15)

但我的问题是->我是否必须编写自己的代码将消息(服务器未确认)存储到我的android sqlite数据库中,并使用
chat.sendMessage()手动重新发送它们何时重新连接?或者这个重发部分是由Smack自己完成的

除了
XMPPTCPConnection.setUseStreamManagementDefault(true)之外,我没有在smack 4.1上使用XEP 198的任何文档

smack是否有任何方法可用于监听
,但似乎他们已经编写了自己的代码(通过发送数据包)来支持XEP 198,而现在在smack 4.1中已经完成了

请帮助我启用此支持后应该做什么

  • 当然,您需要存储挂起的消息,并在连接恢复时重新发送它们
  • 我们有一种方法来听消息。看看这个

  • 我知道关于流管理的文档丢失了。但是由于Smack是开源的,如果查看源代码,你可以尝试回答一些问题。当我离线时,通过FCM发送的EJABBRED转发消息会在我通过EJABBRED频道在线时重复,那么,在我的情况下,我必须做些什么?