Ejabberd:MUC中的其他消息类型

时间:2012-01-30 00:43:52

标签: ejabberd multiuserchat

我需要大量具有附加功能的MUC聊天:

  1. 从代码

  2. 手动更改用户房间
  3. 处理特殊的“系统”调用(例如/ changeroom之类的调用必须不会传输给所有人,而是由系统处理)

  4. 在mnesia表中存储大量有关用户的其他数据

  5. 将所有历史记录存储在hdd上的db中,并根据请求返回。

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

    你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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

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