我有聊天客户端服务器应用程序,我们正在扩展它。所以我需要在两个聊天服务器之间进行服务器间通信。
问题是:假设有两台服务器 A 和 B。现在假设客户端 C1 与服务器 A 进行 TCP 连接,客户端 c2 与服务器 B 进行 TCP 连接。那么问题是:作为同一个应用程序,客户端 C1 和 c2 应该能够识别每个其他已登录并在线可用,但这不会发生,因为没有服务器间通信。
可能的解决方案 1 是:使用 TCP 连接将服务器 A 和服务器 B 登录到对方。在这里,我可以通过 TCP 连接将登录 XML 消息(字符串)和 DataInputStream 转发到其他服务器。所以每次登录都会转移到另一台服务器,以便每个服务器都可以访问每个客户端,并且客户端 C1 可以看到客户端 C2 已登录(在线),反之亦然。
解决方案 1 的问题是:假设现在客户端 C1 可以看到客户端 C2 在线可用,并且客户端 C1 向客户端 C2 发送消息。将会发生什么是服务器 A 将尝试为在服务器 B 而不是服务器 A 上建立的客户端 C2 写入 DatainputStream。这是代码将在此处中断的问题,服务器 A 将无法向客户端 C2 发送消息.
任何输入将不胜感激。
谢谢