多用户聊天 XMPP

Posted

技术标签:

【中文标题】多用户聊天 XMPP【英文标题】:Multi User Chat XMPP 【发布时间】:2016-01-17 14:01:44 【问题描述】:

XMPP 上的多用户聊天 (MUC) 的参与者数量是否有限制?如果参与者的数量非常多,在这种情况下,使用 MUC 与 PubSub 的缺点是什么,假设通信只是一对多,即只有组管理员向参与者发送消息,如 PubSub?

【问题讨论】:

【参考方案1】:

ejabberd 中没有硬编码限制。一切都取决于您的用例和您的 MUC 配置。您甚至可以在不向其他成员广播存在的情况下使用 MUC。这被定义为XEP-0045 中的选项muc#roomconfig_presencebroadcast

因此,它的行为与 Pubsub 非常相似,但在聊天用例中进行了定制。

除其他外,这是一个 ejabberd 演讲中涉及的主题:Implementing State of the Art One-to-Many Chat Services with ejabberd - ejabberd Workshop #1(视频)。

【讨论】:

我可以看到存在广播是在 mod_muc_room.erl 中定义的。要禁用 MUC 的存在广播,我们是否需要在 mod_muc_room.erl 中进行一些更改,或者我们可以简单地在 ejabberd 配置文件中编写,如下所示:default_room_options, presence_broadcast, false,? 您可以更改默认房间选项。

以上是关于多用户聊天 XMPP的主要内容,如果未能解决你的问题,请参考以下文章

XMPP:只读多用户聊天

XMPP Smack 聊天应用程序中的多设备支持

如何在 XMPP 的聊天室中获取用户加入时间

多用户聊天 (MUC) 移动应用程序的最佳方法

如何使用 asmack 在 android 中创建多用户聊天应用程序

在 iPad App 中实现多用户聊天