【问题标题】:ZeroMQ in multiplayer game development多人游戏开发中的 ZeroMQ
【发布时间】:2013-09-02 04:51:17
【问题描述】:

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

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

【问题讨论】:

    标签: tcp udp zeromq


    【解决方案1】:

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

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

    【讨论】:

    • @leet zeromq 是 TCP/UDP 之上的一层.. 所以你无法在这两者之间进行比较
    • @user739711 我知道,但是 zeromq 提供了对 TCP 的增强,使其在某些情况下性能更好,请阅读常见问题解答。我提到的其余几点都是在 OP 问题的上下文中使用 Zeromq 而不是传统套接字的正当理由。
    猜你喜欢
    • 2013-01-19
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多