存储webapp聊天历史记录的推荐方法

时间:2014-08-12 08:05:38

标签: java xmpp openfire smack

我正在使用Openfire API和Java实现基于Web的聊天客户端。

事情设置和运行顺利,然而,我对存储聊天记录的位置感到困惑。

根据我的观察,基于桌面的客户端通常使用xml,txt等格式在客户端文件系统上存储聊天记录。

在服务器端,我有以下选项:

  1. 使用纯文本文件
  2. 使用json(mongodb,hbase等)
  3. 使用数据库
  4. 但我想知道在速度和性能方面哪些是上述选项中最好的(或任何其他可选的)。

    感谢。

1 个答案:

答案 0 :(得分:1)

如isnot2bad的评论中所述,您可以通过使用Openfire Monitoring Plugin添加服务器端消息存档。完成设置后,您可以尝试使用XEP-0126通过XMPP获取存档的1对1聊天消息。

Openfire Plugins

不幸的是,在尝试使用XEP-0136中定义的节来从邮件中删除消息时,我只有麻烦。如果你浏览OF支持论坛,你会发现其他人也遇到了这个插件的问题。例如,插件不会以正确的顺序返回对话列表,它不会按照start属性指定的日期等过滤对话或消息列表。至少可以说,插件可以使用一些工作。作为一种解决方法,我已将插件留在原处,以便将消息插入数据库,但我已经编写了一个自定义AJAX解决方案来检索存档消息。我只是将它们直接从OF的数据库中取出,并将它们在JSON对象中返回给我的客户端javascript。

XEP-0136需要更换,它总是过于复杂。 XEP-0313试图取代它,但我还没有找到OF的任何实现。祝你好运。

相关问题