我们正在为现有的在线游戏构建一个新客户端以及一个缓存代理组件。当前设置如下所示:
Server
| \
TCP TCP
| \
Client1 Client2
新设置将是:
Server
| |
TCP TCP
\ \
Proxy <-- (New!)
| \
0MQ 0MQ
| \
Client1 Client2 <-- (New!)
代理组件将靠近现有的游戏服务器,向它使用基于旧线路的 TCP 协议,同时通过 0MQ 向新客户端使用基于 Google Protocol Buffers 的新协议。除了在服务器与其客户端之间转发和翻译消息外,代理还将缓存(protobuf)发往客户端的消息。
服务器响应客户端请求,但也可能向特定客户端或所有客户端发送未经请求的消息。由于代理将维护发往某个客户端的消息缓存,因此它需要保持与每个客户端相关联的某些状态。
我已经在 ZeroMQ Guide 中阅读了很多内容,但我仍然不确定它的哪些“模式”或套接字组合最适合这种设置。我希望那里有一些 ZeroMQ 向导,可以就这里的最佳方式提供一些建议。
问题不是特定于语言的,但代理组件将用 Java 编写,客户端用 C# 编写。
提前谢谢了!