6

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

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

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

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

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

4

2 回答 2

4

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

于 2012-04-16T11:34:15.383 回答
3

这个问题有点老了,但如果有人仍然感兴趣。

这可以通过消息存档管理 ( 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。网络/en/ejabberd/protocols/。看起来他们正在使用他们的自定义规范。

请注意,由于模块调用的函数参数存在细微差异,您将无法直接将 MongooseIM 中的 mod_mam 与 processone ejabberd 一起使用。

于 2015-01-21T10:38:03.747 回答