我已经和ejabberd合作了一段时间了,但是由于最近的一些问题和要求,我对某些事感到好奇。
如果我创建一个有2个用户的MUC会议室,它是否与正常的1对1聊天消息(性能明智)不同?
如果我总是将MUC用于所有1to1聊天会怎样?
是否有任何性能开销或缺点?
我的连接是否会受到性能损失,这通常会消耗更多资源或施加任何限制或惩罚吗?
非常感谢任何帮助或见解。
答案 0 :(得分:3)
我不知道ejabberd如何实现XMPP,但是从协议的角度来看:
"正常"一对一聊天是无状态服务器端。所有上下文(消息历史记录等)都由客户端维护。服务器只是来回传递消息。另一方面,多用户聊天由服务器维护。资源(参与者列表,房间设置,消息历史)必须存储在某个地方,并且责任在于服务器。
一对一的消息是" ad-hoc"。当一方想要聊天时,他们只是向收件人发送消息。另一方面,必须在开始对话之前创建,配置MUC,并且在开始对话之前必须邀请另一方加入MUC房间。这增加了复杂性和/或时间。
多用户聊天提供了更多功能,但是在一对一对话的背景下是否有意义(例如,将某些人从谈话中踢出来有意义吗?)是有争议的。另一方面,您可能必须正确配置聊天室,以便它们不可发现(无法看到对话列表),第三方无法加入它们(除非受邀),用户无法自由更改昵称等。
答案 1 :(得分:0)
是的,MUC的开销是MUC流程管理本身。