我正在使用 iOS 客户端(和XMPPFramework )构建基于ejabberd的聊天系统。
我当前的聊天系统仅支持用户之间的一对一对话,将聊天记录保存在 MySQL 数据库中。
为了重新创建相同的聊天系统,我需要 ejabberd 从我的数据库中检索聊天历史记录,这样用户在切换到新的聊天系统时就不会丢失以前的对话。
我不想保存对话客户端,因为可以删除并重新安装 iOS 应用程序(或者用户可以切换设备)。
是否可以让 ejabberd 从我的 MySQL 数据库中读取聊天记录?
我正在使用 iOS 客户端(和XMPPFramework )构建基于ejabberd的聊天系统。
我当前的聊天系统仅支持用户之间的一对一对话,将聊天记录保存在 MySQL 数据库中。
为了重新创建相同的聊天系统,我需要 ejabberd 从我的数据库中检索聊天历史记录,这样用户在切换到新的聊天系统时就不会丢失以前的对话。
我不想保存对话客户端,因为可以删除并重新安装 iOS 应用程序(或者用户可以切换设备)。
是否可以让 ejabberd 从我的 MySQL 数据库中读取聊天记录?
这应该可以通过mod_archive_odbc 实现。这是一个额外的 ejabberd 模块,您可以通过使用 SVN查看http://svn.process-one.net/ejabberd-modules/来找到它。可以在此处找到有关如何在 Debian 上构建和安装模块的示例。
这个问题有点老了,但如果有人仍然感兴趣。
这可以通过消息存档管理 ( 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 一起使用。