4

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

我觉得TCP和UDP都会很慢。我遇到了 ZeroMQ,它的开销似乎更少,并且比 TCP 和 UDP 更快。在这里使用 ZeroMQ 是否可取?有什么优点和缺点?

4

1 回答 1

4

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

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