2015-04-07 52 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的選項。 –