Ejabberd:MUC 中的其他消息类型
Posted
技术标签:
【中文标题】Ejabberd:MUC 中的其他消息类型【英文标题】:Ejabberd: Additional message types in MUC 【发布时间】:2012-01-30 00:43:52 【问题描述】:我需要大量具有附加功能的 MUC 聊天:
通过代码手动更改用户房间
处理特殊的“系统”调用(例如,像 /changeroom 这样的调用不能传送给每个人,而是由系统处理)
在 mnesia 表中存储大量有关用户的附加数据
将所有历史记录存储在硬盘上的 db 中某处,并在请求时返回。
唯一想到的(关于第二点)是捕获每个处理 package_fillter 事件的包。但这似乎太重了。
你有什么建议?
【问题讨论】:
【参考方案1】:我确认你的方法有点矫枉过正。处理所有数据包似乎没有必要。
如果 MUC XMPP 扩展的功能不足以满足您的需求,您需要编写自定义 MUC 模块扩展 (XEP-0045)。
从ejabberd 15.07 开始,引入了一个名为muc_filter_packet
的新钩子API。它允许您轻松编写一个 ejabberd 模块来仅扩展 MUC 数据包处理,而无需侦听所有服务器范围的数据包。
【讨论】:
以上是关于Ejabberd:MUC 中的其他消息类型的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ejabberd 上为 muc(多用户聊天)设置不同的消息间隔?