这篇文章阐述了如何使用Ejabberd提供的第三方消息归档模块
前置阅读
15.03在加载外部模块时有个BUG:
https://github.com/processone/ejabberd/commit/8b23727cc6db571b9d1dcc6119e39a602fe37279
所以, 请使用最新的15.04版本的Ejabberd
继续下面的步骤之前, 请先阅读如何安装模块
安装模块
1
| ejabberdctl modules_update_specs
ejabberdctl modules_available
ejabberdctl module_install mod_mam
|
重新编译
修改配置文件
配置文件有两个地方需要修改
1
| mod_mam:
access_max_user_messages: access_max_user_messages
default_page_size: 25
max_page_size: 100
request_activates_archiving: true
iqdisc: parallel
|
配置说明,请参考模块的README文件
1
| mod_roster:
versioning: true
|
最后, 重启Ejabberd服务器
服务功能查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| ## IQ-get 请求 <iq type='get' id='id-1431259882548' to='x.hezhiqiang.info' from='root@x.hezhiqiang.info' xml:lang='zh' xmlns='jabber:client'> <query xmlns='http://jabber.org/protocol/disco#info'/> </iq>
# IQ-result 响应 <iq from='x.hezhiqiang.info' to='root@x.hezhiqiang.info/24790037601431259873977465' id='id-1431259882548' type='result'> <query xmlns='http://jabber.org/protocol/disco#info'> <identity category='pubsub' type='pep'/> <identity category='server' type='im' name='ejabberd'/> <x xmlns='jabber:x:data' type='result'> <field var='FORM_TYPE' type='hidden'> <value>http://jabber.org/network/serverinfo</value> </field> </x> ... <feature var='urn:xmpp:mam:0'/> ... </query> </iq>
|
你会看到, 多了一个<feature var='urn:xmpp:mam:0'/>
注意: 目前MAM模块暂时支持Mnesia数据库作为后端存储
参考资料
- http://www.lebsanft.org/?p=537
- https://github.com/processone/ejabberd-contrib/tree/master/mod_mam
- http://xmpp.org/extensions/xep-0279.html