ZeroMQ 在多人游戏开发中的应用

lee*_*eet 4 udp tcp zeromq

我想开发一款多人游戏,其中
1. 有 n 个客户端和一个服务器
2. 客户端应该能够在有或没有响应的情况下向服务器发送消息
3. 服务器应该能够在有或没有响应的情况下向客户端发送消息

我感觉TCP和UDP都会很慢。我遇到了 ZeroMQ,它似乎比 TCP 和 UDP 开销更少并且速度更快。建议在这里使用 ZeroMQ 吗?有什么优点和缺点?

raf*_*ian 5

ZeroMq 可能非常适合您的需求。目标应用程序是游戏,这意味着您可以为了性能而牺牲可靠性。这里还有几个原因:

  • ZeroMQ 不是基于 JMS 或 MQ 的,因此没有集中式代理会减慢速度。
  • 断开/重新连接由 ZeroMQ 库自动处理,使您无需编写代码来处理对等点的断开和重新上线。
  • 如果接收方离线,消息会自动以缓冲区存储转发的方式排队。
  • ZeroMq 套接字类型(PUB、SUB、REQ、REP、PUSH、PULL)提供了方便的方法,可以轻松地在应用程序中启用常见的消息传递范例。
  • 根据您列出的要求,可以轻松处理同步和异步消息传递,并且您可以在示例目录中找到演示几乎所有套接字组合的示例。