我正在用Java实现一个基于web的聊天客户端,使用Openfire API。
事情的设置和运行顺利,然而,我有点困惑,在哪里存储聊天历史。
据我所观察,基于桌面的客户端通常使用xml、txt等格式在客户端文件系统上存储聊天历史。
在服务器端,我有以下选项:
但我想知道,在速度和性能方面,上述选项中哪一种是最好的(如果你能建议的话,还有其他的)。
谢谢。
发布于 2014-08-12 18:13:38
正如isnot2bad的注释中提到的,您可以通过使用Openfire监视插件添加服务器端消息存档。一旦设置好了,就可以尝试使用XEP-0126通过XMPP获取存档的1到1聊天消息。
不幸的是,当我试图使用XEP-0136中定义的节从存档中获取消息时,我只遇到了麻烦。如果你环顾支持论坛,你会发现其他人也遇到了这个插件的问题。例如,插件不会按正确的顺序返回会话列表,也不会按开始属性指定的日期过滤会话或消息列表,至少可以说,插件可以使用一些工作。作为一项工作,我已经将插件放在了适当的位置,以便将消息插入数据库,但我已经编写了一个自定义AJAX解决方案,用于检索存档的消息。我只需将它们直接从数据库中取出,并在JSON对象中将它们返回给我的客户端javascript。
XEP-0136将被替换,它总是过于复杂。XEP-0313试图替换它,但我还没有找到任何的实现。祝好运。
https://stackoverflow.com/questions/25259163
复制相似问题