2015-04-07 66 views
0

我一直在ejabberd工作一段时间,但由于最近的一些问题和要求,我对某件事感到好奇。ejabberd 2用户MUC与普通的1对1聊天

如果我创建了一个有2个用户的MUC房间,它是否与普通的1对1聊天消息(性能明智)不同?

如果我总是在所有1to1聊天中使用MUC,会发生什么?

它是否有任何性能开销或缺点?

我的连接是否受到性能处罚,这是否会消耗更多资源或施加任何限制或处罚?

任何帮助或见解将不胜感激。

+0

交叉帖子:http://superuser.com/q/898698/151741&http://serverfault.com/q/680913/131794 – unor

回答

3

我不知道ejabberd如何实现XMPP,但是从协议的角度看:

  1. “正常”一到一个聊天是无状态服务器端。所有的上下文(消息历史等)由客户端维护。服务器只是来回传递消息。另一方面,多用户交谈由服务器维护。资源(参与者列表,房间设置,消息历史)必须存储在某个位置,并且该责任位于服务器上。

  2. 一对一的信息是“特设的”。当一方想要聊天时,他们只会向收件人发送消息。另一方面,MUC必须在开始对话之前创建,配置,另一方必须在开始对话之前被邀请加入MUC室。这增加了复杂性和/或时间。

  3. 多用户交谈提供了更多的功能,但是它们在一对一对话中是否有意义是有争议的(例如踢别人是否有意义?)。另一方面,您可能必须正确配置聊天室,以便它们不被发现(人们看不到对话列表),第三方不能加入(除非被邀请),用户不能自由更改昵称等。

0

是的,MUC的开销是MUC流程管理本身。

+0

谢谢您的回复。我最初认为这将是一个愚蠢的想法,有许多2用户MUCs。但从消息来源收到信息很好。 – Mepla

+0

我不确定你想要构建什么,但是你可能想看看如XEP-0045规范中定义的将一对一聊天转换为MUC的选项。 –