假设我的基于XMPP的聊天服务具有以下服务器端架构:
我假设每个客户端(发件人为1,收件人1和2为其他人)必须最初连接并绑定到XMPP服务器,并且客户端将始终绑定到该服务器以用于客户端的整个会话。正确的吗?
如果正确,那么什么决定了客户端最初连接的XMPP服务器?这个XMPP集群中是否有一些单点入口服务器决定了这个?
答案 0 :(得分:1)
是的,客户端将为每个会话与一个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.