RabbitMQ如何适合我的游戏/聊天场景?

RabbitMQ如何适合我的游戏/聊天场景?,rabbitmq,Rabbitmq,我知道已经有很多关于RabbitMQ的帖子,以及用它代替XMPP是否合适,等等。。但是声明RabbitMQ是强制性的,我应该如何在我的场景中使用RabbitMQ 规格如下: -有许多客户端可以加入一个或多个聊天室 客户端可以创建自己的聊天室,并对其进行密码保护 当客户端断开连接时,有两种可能的实现方式:1)他无法读取以前的消息;2) 他可以在登录前5分钟内收到消息 客户端可以发送私人消息 现在,给出这个规范,使用RabbitMQ的最佳实践是什么? RabbitMQ提供了哪些已经实现的功能?

我知道已经有很多关于RabbitMQ的帖子,以及用它代替XMPP是否合适,等等。。但是声明RabbitMQ是强制性的,我应该如何在我的场景中使用RabbitMQ

规格如下: -有许多客户端可以加入一个或多个聊天室

  • 客户端可以创建自己的聊天室,并对其进行密码保护

  • 当客户端断开连接时,有两种可能的实现方式:1)他无法读取以前的消息;2) 他可以在登录前5分钟内收到消息

  • 客户端可以发送私人消息

现在,给出这个规范,使用RabbitMQ的最佳实践是什么? RabbitMQ提供了哪些已经实现的功能? 我用的是C语言,但我的问题更多的是关于软件架构

我读过一些关于不同exchange的文章,但我对使用什么以及如何组织队列表示怀疑。
话题交流是我需要的吗?我应该如何实现它?
我的消费者(也就是我的游戏客户端)应该在每次登录服务器并将队列绑定到主题时创建一个队列吗

正如你所看到的,我想我对RabbitMQ如何管理这类事情还不是很清楚

关于未来改进的注意事项:RabbitMQ队列也将用于向连接的客户端传递游戏事件,这就是为什么不考虑简单聊天协议的原因

更新: 也许我需要一个扇出交换器将消息发送到我的所有队列中,我的客户机在登录时将创建该队列

为了创建聊天室,我认为最好创建一个服务器组件,当客户端想要创建聊天室时,它会监听客户端发送到的特定队列

这里遗漏的是如何处理对rabbitmq实例和聊天频道的身份验证。 对于聊天频道,我可以将其委托给服务器组件(用户发送到“chat_authentication”队列)聊天室和密码以及服务器组件发送到命名的客户机队列(无论是否正常),但如果有人将自定义客户机直接连接到我的rabbitMQ队列,这听起来并不安全,那么我应该如何实现授权

  • 您可以为每个聊天室创建一个扇出交换,并允许用户创建队列并绑定到它
  • 对于用户身份验证,您可能会考虑集成LDAP之类的解决方案
  • 您也可以阅读我的文章:

    了解RabbitMQ中的不同交流

  • 您可以为每个聊天室创建一个扇出交换,并允许用户创建队列并绑定到它
  • 对于用户身份验证,您可能会考虑集成LDAP之类的解决方案
  • 您也可以阅读我的文章:


    要了解RabbitMQ中的不同交换。

    您的方案最好通过数据库、web服务和message broker的组合来解决。您需要稍微扩展您的设计。您的方案最好通过数据库、web服务和message broker的组合来解决。您需要稍微扩展您的设计。