amqp 或 xmpp 用于实时在线游戏[关闭]

2023-12-25

以下哪些技术套件适用于多用户在线游戏项目?

项目要求:

  1. 能够在任何给定时间处理 2k-5k 用户。
  2. 适用于 iPhone 和 Android 的客户端库(本机,无 JavaScript)。
  3. 适用于 Microsoft Windows(最重要)的客户端库,也适用于 mac os x 和 linux。
  4. 专门用于 mod 开发的良好文档
  5. 项目不是开源的。因此,只能使用具有合适许可证的库。

我也可以用 erlang 和 java 编程,编程语言不是问题。

我正在研究以下服务器技术,例如 Openfire、Tigase、ejabberd 和 RabbitMQ。 所有这些都适合我的项目,但我想更多地了解我的需求是 AMQP 还是 XMPP。

AMQP 专门为实时在线游戏提供什么。这是比 xmpp 更好的选择吗?


XMPP 和 AMQP 之间的主要区别在于二进制内容。 AMQP 可以很好地处理二进制数据,而 XMPP 似乎更适合 XML。就我个人而言,对于在线游戏,我使用 Google Protocol Buffers 进行消息格式化和解析,并且由于其二进制占用空间非常小,我更倾向于使用 AMQP 来传递这些消息。

但请务必考虑您要使用哪种 AMQP 服务器。过去,我一直在使用 RabbitMQ 作为我的 AMQP 服务器。 RabbitMQ 根本没有任何流量控制设施。因此,如果您的客户端发送消息的速度比服务器消耗消息的速度快,则服务器上的缓冲区可能会被填满并导致服务器崩溃。 RabbitMQ 的最新版本以极其粗略的方式实现流量控制:它们停止all系统中的消费者,直到内存清理干净。

我从来没有尝试过zeromq;也许对于我一直使用 RabbitMQ 做的事情会更好......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

amqp 或 xmpp 用于实时在线游戏[关闭] 的相关文章

随机推荐