在Android

时间:2015-04-23 04:49:34

标签: android xmpp openfire

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

1 个答案:

答案 0 :(得分:5)

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维护者有一个{{ 3}}和local branch with MAM support

您需要为您的连接设置MAM will be incorporated into the next release,并可以使用MamManager方法获取存档内容。在MAM分支中,没有内置机制来配置帐户归档首选项,但我想这也将在下一版本中修复。