其他分享
首页 > 其他分享> > 在Android中获取XMPP Open Fire私聊条记录和邮件存档

在Android中获取XMPP Open Fire私聊条记录和邮件存档

作者:互联网

我正在开发XMPP Open fire我能够在私人聊天和房间内发送和接收消息,并且还能够获得聊天室聊天的历史但无法获得私人聊天的消息历史,我也想实现私人聊天中的消息存档和Android聊天室.

解决方法:

XMPP中的私人消息存档

默认情况下,私有聊天记录不会存储在XMPP服务器上.如果在服务器上启用,则尚未传递到客户端的私人消息将存储为“脱机消息”.客户端重新连接后,会自动发送和清除这些客户端.您的客户端将像普通消息一样接收它们,但它们将包含timestamp of their initial transmission.

对于更持久的方法,XEP-0136: Message Archiving从未被广泛使用,或者更好(并且更容易实现)XEP-0313: Message Archive Management.

XEP-0313的服务器支持

对于Openfire,a patch attached to OF-862已于2015年9月合并,并且是4.0版本的一部分.

如果你使用最近的版本,还有ejabberd和韵律的支持.

无论哪种情况,您都需要enable archiving for your account on the server.

客户支持XEP-0313

根据您使用的客户端库,它可能已经支持,或者您需要使用适当的XML扩展代码对其进行扩展.

如果您使用的是Smack(使用最广泛的Android XMPP库),它尚未开箱即用,但Smack维护者有一个local branch with MAM supportMAM will be incorporated into the next release.

您需要为连接实例化MamManager,并且可以使用queryArchive()方法获取存档内容.在MAM分支中,没有用于配置帐户归档首选项的内置机制,但我想这也将在下一版本中修复.

标签:android,xmpp,openfire
来源: https://codeday.me/bug/20190609/1205110.html