假设我的目标是创建聊天服务。我还想要多个独立的聊天室。
我倾向于使用XMPP进行扩展/负载平衡。我阅读了文章here,我正在看
假设我想从一个客户端向另一个客户端发送消息。根据这个图,
1)发件人向发件人的XMPP服务器发送邮件。 2)发件人的XMPP服务器将消息中继到MUC服务器。 3)MUC服务器确定接收者连接到哪个服务器并在那里中继消息。
(如果我错了,请纠正我)
两个问题:
1)文章建议将MUC集群到多个服务器上。这是否意味着a)镜像MUC服务器在发送方和接收方服务器上的状态,或b)将图的MUC部分转换为多个服务器,发送方和接收方服务器是否透明地与该群集通信?
2)当用户首次连接到节点时,网络如何知道将用户绑定到哪个服务器?是否有单一的入口机器来委托这个?
答案 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