【发布时间】:2011-04-14 14:58:15
【问题描述】:
假设我的基于 XMPP 的聊天服务具有以下服务器端架构:
我假设每个客户端(发送者为一个,接收者 1 和 2 为其他客户端)最初必须连接并绑定到 XMPP 服务器,并且客户端在客户端的整个会话期间始终绑定到该服务器。对吗?
如果正确,那么是什么决定了客户端最初连接到哪个 XMPP 服务器?这个 XMPP 集群中是否有一些单点入口服务器来决定这一点?
【问题讨论】:
标签: xmpp
假设我的基于 XMPP 的聊天服务具有以下服务器端架构:
我假设每个客户端(发送者为一个,接收者 1 和 2 为其他客户端)最初必须连接并绑定到 XMPP 服务器,并且客户端在客户端的整个会话期间始终绑定到该服务器。对吗?
如果正确,那么是什么决定了客户端最初连接到哪个 XMPP 服务器?这个 XMPP 集群中是否有一些单点入口服务器来决定这一点?
【问题讨论】:
标签: xmpp
是的,对于每个会话,客户端都会与一个 XMPP 服务器建立持久连接。
假设图中的所有服务器都服务于同一个域,提供多个服务器的常用方法是为该域使用多个 DNS SRV 记录。例如,连接到“google.com”的 XMPP 客户端将解析以下服务器/端口:
$ dig +short -t SRV _xmpp-client._tcp.google.com
20 0 5222 talk3.l.google.com.
20 0 5222 talk2.l.google.com.
5 0 5222 talk.l.google.com.
20 0 5222 talk1.l.google.com.
20 0 5222 talk4.l.google.com.
【讨论】: