关于基于XMPP的聊天服务架构的建议?

时间:2011-04-14 14:50:51

标签: xmpp

假设我的目标是创建聊天服务。我还想要多个独立的聊天室。

我倾向于使用XMPP进行扩展/负载平衡。我阅读了文章here,我正在看

enter image description here

假设我想从一个客户端向另一个客户端发送消息。根据这个图,

1)发件人向发件人的XMPP服务器发送邮件。 2)发件人的XMPP服务器将消息中继到MUC服务器。 3)MUC服务器确定接收者连接到哪个服务器并在那里中继消息。

(如果我错了,请纠正我)

两个问题:

1)文章建议将MUC集群到多个服务器上。这是否意味着a)镜像MUC服务器在发送方和接收方服务器上的状态,或b)将图的MUC部分转换为多个服务器,发送方和接收方服务器是否透明地与该群集通信?

2)当用户首次连接到节点时,网络如何知道将用户绑定到哪个服务器?是否有单一的入口机器来委托这个?

1 个答案:

答案 0 :(得分:1)

就系统的入口点而言,您的客户端将始终使用默认入口点或您在DNS SRV设置中指定的入口点,即用户rcv并仅通过您的xmpp服务器端口5222(c2s)发送数据或5269(s2s)。

所以MUC消息节流将如下所示(lemme知道我是否误解了你的问题):

a)如果发件人/收件人都在您的服务器上注册

sender@myjabber.com< - > myjabber.com:5222< - > muc.myjabber.com< - > myjabber.com:5222< - > receiver@myjabber.com

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

sender@gmail.com< - > talk.google.com:5222< - > myjabber.com:5269< - > muc.myjabber.com< - > myjabber.com:5222< - > receiver@myjabber.com