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

Raj*_*sar 4 android xmpp openfire

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

ge0*_*0rg 5

XMPP中的私人消息存档

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

对于更持久的方法,有XEP-0136:消息归档从未被广泛使用,或者更好(并且更容易实现)XEP-0313:消息归档管理.

XEP-0313的服务器支持

对于Openfire,OF-862附带了一个补丁,该补丁已于2015年9月合并,是4.0版本的一部分.

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

在任何一种情况下,您都需要在服务器上为您的帐户启用存档.

客户支持XEP-0313

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

如果你正在使用Smack(最广泛使用的Android XMPP库),它尚未开箱即用,但Smack维护者有一个支持MAM本地分支,MAM将被整合到下一个版本中.

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