一对一的聊天记录与 open fire 和 smack
one to one chat history with open fire and smack
我已经在我的系统中安装了 open fire 并且通过使用邮递员工具我能够创建用户并且通过使用 smack 我也能够将消息发送给其他用户..但问题是我不知道如何获取两个用户之间的聊天记录……这意味着如果我发送发件人和发件人用户名,我需要获取以前的聊天记录。
我可以在 open fire servers--> archieving 文件夹中看到聊天记录。
但我不知道如何获取聊天记录。
是否有任何 Rest API 可用于获取两个用户之间的聊天记录..
请提供任何可能的解决方案
谢谢
这是我能看到的聊天记录
如果您想通过 smack 从 Openfire 获取聊天记录:
如前所述,通过在 Openfire 中安装 MonitoringService 插件来启用 MAM (XEP-0313)。
现在从 Openfire 服务器转到:服务器>存档>存档设置并选中“存档一对一聊天”和“存档群聊”并保存单击“更新设置”。
从现在开始,所有聊天记录都将保存在 Openfire 上。与某人开始新的聊天并重新安装您的 android 应用。
MAM 是“smack-experimental”的一部分。所以你必须将这一行添加到你的 Gradle:
implementation 'org.igniterealtime.smack:smack-extensions:4.2.2'
成功连接并授权其中之一后,您可以通过以下代码逐页或根据需要获取聊天记录:
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());
}
我已经在我的系统中安装了 open fire 并且通过使用邮递员工具我能够创建用户并且通过使用 smack 我也能够将消息发送给其他用户..但问题是我不知道如何获取两个用户之间的聊天记录……这意味着如果我发送发件人和发件人用户名,我需要获取以前的聊天记录。 我可以在 open fire servers--> archieving 文件夹中看到聊天记录。 但我不知道如何获取聊天记录。 是否有任何 Rest API 可用于获取两个用户之间的聊天记录..
请提供任何可能的解决方案
谢谢
这是我能看到的聊天记录
如果您想通过 smack 从 Openfire 获取聊天记录:
如前所述,通过在 Openfire 中安装 MonitoringService 插件来启用 MAM (XEP-0313)。
现在从 Openfire 服务器转到:服务器>存档>存档设置并选中“存档一对一聊天”和“存档群聊”并保存单击“更新设置”。
从现在开始,所有聊天记录都将保存在 Openfire 上。与某人开始新的聊天并重新安装您的 android 应用。
MAM 是“smack-experimental”的一部分。所以你必须将这一行添加到你的 Gradle:
implementation 'org.igniterealtime.smack:smack-extensions:4.2.2'
成功连接并授权其中之一后,您可以通过以下代码逐页或根据需要获取聊天记录:
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()); }