2012-01-30 41 views
0
其他消息类型

我需要大量的附加功能MUC聊天:Ejabberd:在MUC

  1. 更改用户从代码中手工室

  2. 处理特殊的“系统”呼叫(例如呼叫像/ changeroom必须不能运到大家,但在Mnesia的表由系统handeled)

  3. 存储大量有关用户的附加数据

  4. 将所有历史记录存储在硬盘上的数据库中,然后根据请求返回。

想到的唯一一件事(关于第二点)是捕获每个包处理package_fillter事件。但是这似乎太重了。

你能提供什么建议?

回答

0

我确认你的方法是矫枉过正。处理所有的数据包似乎没有必要

如果MUC XMPP扩展功能对于您来说不够(XEP-0045),则需要编写自定义MUC模块扩展。

由于ejabberd 15.07,引入了一个新的挂钩API,称为muc_filter_packet。它使您可以轻松编写ejabberd模块来仅扩展MUC数据包处理,而无需监听所有服务器范围的数据包。