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