ejabberd:从mysql db中检索聊天记录

时间:2012-03-28 15:49:44

标签: mysql chat history ejabberd xmppframework

我正在使用iOS客户端(和ejabberd)构建基于XMPPFramework的聊天系统。

我当前的聊天系统仅支持用户在MySQL数据库中保存聊天记录之间的一对一对话。

为了重新创建相同的聊天系统,我需要ejabberd从我的数据库中检索聊天记录,以便用户在切换到新的聊天系统时不会丢失先前的对话。

我不想保存会话客户端,因为可以删除并重新安装iOS应用程序(或者用户可以切换设备)。

是否可以从我的MySQL数据库中获取ejabberd读取聊天记录?

2 个答案:

答案 0 :(得分:4)

这应该可以通过mod_archive_odbc实现。 这是一个额外的ejabberd模块,您可以通过使用SVN查看http://svn.process-one.net/ejabberd-modules/来找到它。 关于如何在Debian can be found here上构建和安装模块的示例。

答案 1 :(得分:3)

问题有点陈旧,但如果有人仍然感兴趣。

这可以通过邮件存档管理(http://xmpp.org/extensions/xep-0313.html)实现。

此XEP的最完整实现是在MongooseIM(ejabberd的fork)中。 https://github.com/esl/MongooseIM/blob/master/apps/ejabberd/src/mod_mam.erl

ProcessOne页面声称支持在此页面上归档:http://www.process-one.net/en/ejabberd/#getejabberd,但此页面上没有提及:http://www.process-one.net/en/ejabberd/protocols/。看起来他们正在使用他们的自定义规范。

请注意,由于模块正在调用的函数参数差异很小,因此您无法直接使用来自MongooseIM的mod_mam和processone ejabberd。