我在XMPP Open上工作,我能够在私人聊天和房间中发送和接收消息,也能够获得聊天室聊天的历史,但无法获得私人聊天的消息历史,我还想实现Android的私密聊天和机房聊天的消息存档。
发布于 2016-07-22 12:09:50
XMPP中的私有消息归档
默认情况下,私有聊天历史不会存储在XMPP服务器上。如果在服务器上启用,尚未传递给客户端的私有消息将存储为“脱机消息”。一旦客户端重新连接,它们就会被自动传递和清除。您的客户端将像接收普通消息一样接收它们,但它们将包含一个初始传输的时间戳。
对于更持久的方法,有一个从未被广泛使用过的XEP-0136:消息存档,或者更好(更容易实现)的XEP-0313:消息存档管理。
XEP-0313的服务器支持
对于Openfire,已经在2015年9月合并了附于-862的补丁,它是4.0发行版的一部分。
如果您使用的是最近的版本,那么ejabberd和韵律也有支持。
在这两种情况下,您都需要启用服务器上帐户的存档。
XEP-0313的客户端支持
根据您使用的客户端库,它可能已经有了支持,或者您需要用适当的XML扩展代码来扩展它。
如果您使用的是拍打 (使用最广泛的Android库),它还不支持开箱即用,但是Smack维护器有一个支持MAM的本地分支和MAM将被纳入下一版本。。
您需要为连接实例化一个MamManager,并且可以使用queryArchive()方法获得归档内容。在MAM分支中,没有配置帐户归档首选项的内置机制,但我认为这也将在下一个版本中得到解决。
https://stackoverflow.com/questions/29813931
复制相似问题