一对一的聊天记录与 open fire 和 smack

one to one chat history with open fire and smack

我已经在我的系统中安装了 open fire 并且通过使用邮递员工具我能够创建用户并且通过使用 smack 我也能够将消息发送给其他用户..但问题是我不知道如何获取两个用户之间的聊天记录……这意味着如果我发送发件人和发件人用户名,我需要获取以前的聊天记录。 我可以在 open fire servers--> archieving 文件夹中看到聊天记录。 但我不知道如何获取聊天记录。 是否有任何 Rest API 可用于获取两个用户之间的聊天记录..

请提供任何可能的解决方案

谢谢

这是我能看到的聊天记录

如果您想通过 smack 从 Openfire 获取聊天记录:

  1. 如前所述,通过在 Openfire 中安装 MonitoringService 插件来启用 MAM (XEP-0313)。

  2. 现在从 Openfire 服务器转到:服务器>存档>存档设置并选中“存档一对一聊天”和“存档群聊”并保存单击“更新设置”。

  3. 从现在开始,所有聊天记录都将保存在 Openfire 上。与某人开始新的聊天并重新安装您的 android 应用。

  4. MAM 是“smack-experimental”的一部分。所以你必须将这一行添加到你的 Gradle:

    implementation 'org.igniterealtime.smack:smack-extensions:4.2.2'
    
  5. 成功连接并授权其中之一后,您可以通过以下代码逐页或根据需要获取聊天记录:

    MamManager manager = MamManager.getInstanceFor(connection);
    MamManager.MamQueryResult r = manager.mostRecentPage([userBareJID], [numberOfMessages]);
    if (r.forwardedMessages.size() >= 1) //printing first of them
    {
        Message message = (Message) r.forwardedMessages.get(0).getForwardedStanza();
        Log.i("mam", "message received" + message.getBody());
    }