在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 support和MAM will be incorporated into the next release.
您需要为连接实例化MamManager
,并且可以使用queryArchive()
方法获取存档内容.在MAM分支中,没有用于配置帐户归档首选项的内置机制,但我想这也将在下一版本中修复.
标签:android,xmpp,openfire 来源: https://codeday.me/bug/20190609/1205110.html