我正在使用iOS客户端(和XMPPFramework)构建一个基于ejabberd的聊天系统。
我目前的聊天系统仅支持用户之间的一对一对话,并将聊天历史记录保存在MySQL数据库中。
为了重新创建相同的聊天系统,我需要ejabberd从我的数据库中检索聊天历史记录,以便用户在切换到新的聊天系统时不会丢失之前的对话。
我不想在客户端保存对话,因为iOS应用程序可以被删除并重新安装(或者用户可以切换设备)。
可以让ejabberd从我的MySQL数据库中读取聊天历史记录吗?
发布于 2012-04-16 19:34:15
使用mod_archive_odbc应该可以做到这一点。这是一个额外的ejabberd模块,您可以通过使用SVN查看http://svn.process-one.net/ejabberd-modules/来找到它。关于如何在Debian can be found here上构建和安装模块的示例。
发布于 2015-01-21 18:38:04
这个问题有点老了,但如果有人还感兴趣的话。
这可以通过消息存档管理(http://xmpp.org/extensions/xep-0313.html)来实现。
这个XEP最完整的实现是用MongooseIM (ejabberd的分支)实现的。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一起使用。
https://stackoverflow.com/questions/9911210
复制相似问题