2011-04-14 85 views
0

假設我的目標是創建一個聊天服務。我也想要多個離散的聊天室。關於基於XMPP的聊天服務體系結構的建議?

我傾向於使用XMPP進行縮放/負載平衡。讀了這篇文章here,和我在看

enter image description here

比方說,我想從一個客戶端發送消息到另一個。根據此圖,

1)發件人向發件人的XMPP服務器發送消息。 2)發件人的XMPP服務器將消息轉發給MUC服務器。 3)MUC服務器確定接收者連接到哪個服務器並在那裏中繼消息。

(糾正我,如果我錯了)

兩個問題:

1)文章建議在多個服務器集羣的MUC。這是否意味着a)將MUC服務器的狀態鏡像到發送方和接收方服務器上,或b)將圖的MUC部分變爲多個服務器,並且發送方和接收方服務器透明地與該集羣進行通信?

2)當用戶第一次連接到一個節點時,網絡如何知道哪個服務器綁定用戶?是否有一個單一的入口機器來委託它?

回答

1

就進入系統的入口而言,您的客戶將始終使用默認入口點或您在DNS SRV設置中指定的入口點,即用戶rcv並僅通過xmpp服務器端口5222(c2s)發送數據。或5269(s2s)。

所以MUC消息節流看起來像這樣(還是讓我知道,如果我誤解了你的問題):

a)如果發件人/接收器都在你的服務器上註冊

[email protected] < - > myjabber.com:5222 < - > muc.myjabber.com < - > myjabber.com:5222 < - > [email protected]

b)如Sender是@ gmail.com用戶和Rcvr @ myjabber.com用戶

[email protected] < - > talk.google.com:5222 < - > myjabber.com:5269 < - > muc.myjabber.com < - > myjabber.com:5222 < - > receiver @ myjabber.com