Android / Java XMPP打破对话历史记录

时间:2016-01-31 20:31:56

标签: java android xmpp ejabberd smack

我有一个稳定的xmpp聊天实现与smack库为Android。 我需要获得两个用户之间的对话历史记录,我发现我可以通过发送原始xml IQ来获取历史记录,但是我找不到使用smack来做到这一点的方法。

<iq type="get" id="pk1">
  <query xmlns="urn:xmpp:mam:tmp" with="user@domain" queryid="x01">
   <set xmlns="http://jabber.org/protocol/rsm">
    <max>100</max>
   </set>
  </query>
</iq>

有没有其他方法可以在没有取消服务器的情况下获取两个用户之间的历史记录? 谢谢

2 个答案:

答案 0 :(得分:0)

如果您想保留对话历史记录而不使用服务器,则需要在Android应用中创建本地数据库。您将跟踪发送者,接收者,时间和messageId。这样您就可以在不调用服务器的情况下保持对话历史记录。

虽然如果您更换设备,此类历史记录将会出现。这是消极的一面。

答案 1 :(得分:0)

如果要在服务器上保存历史记录,则需要使用ODBC将服务器数据库与XMPP服务器数据库连接以维护所有消息