239-如何解决集群聊天服务器跨服务器通信
如何解决集群聊天服务器跨服务器通信
我们在集群聊天服务器中涉及的通信是:
- 一对一的聊天
- 群聊

- 我们看上图,client1登录在chatserver1上,client2登录在chatserver2上,client3登录在chatserver3上;
- 按我们现有的单台服务器业务来说,当client1给client2发送聊天消息的话,我们在每一台服务器上都有_userConMap,在chatserver1上的_userConMap肯定是找不到client2的connection;
- 所以,在集群环境中,我们服务器的代码在业务逻辑上应该做修改,客户端完全不用改动,因为客户端不用去了解服务器有几台。
- 我们要继续判断,如果当前client1所要聊的client2并不在这台chatserver1的机器上,就要去数据库找client2用户的一个在线状态,如果是offline,说明client2确实不在线,直接按照原来的逻辑发送离线消息就可以了;
- 如果是在数据库查到client2的状态是online,是在线的,不在这台主机上的_userConMap而已,只是登录在集群的其他的服务器上;
如果是这种情况,如何聊天呢?client1根本不知道client2的connection是什么!
解决方法1:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
