1

我已经使用 ejabberd 有一段时间了,但是由于最近的一些问题和要求,我对某些事情感到好奇。

如果我创建一个有 2 个用户的 MUC 房间,它与普通的一对一聊天消息(性能方面)有什么不同?

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

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

我的连接是否会受到性能损失,这通常会消耗更多资源或施加任何类型的限制或惩罚吗?

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

4

2 回答 2

3

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

  1. “正常”的一对一聊天是无状态的服务器端。所有上下文(消息历史等)都由客户端维护。服务器只是来回中继消息。另一方面,多用户聊天由服务器维护。资源(参与者列表、房间设置、消息历史)必须存储在某个地方,而这个责任在于服务器。

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

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

于 2015-04-15T07:51:18.590 回答
0

是的,MUC 有一个开销,即 MUC 进程管理本身。

于 2015-04-15T07:07:14.243 回答