首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RabbitMQ如何适合我的游戏/聊天场景?

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

Stack Overflow用户
提问于 2015-06-22 14:22:10
回答 1查看 710关注 0票数 1

我知道已经有很多关于RabbitMQ的帖子,如果它合适或者不使用它,而不是XMPP,等等。但是既然RabbitMQ是强制性的,那么我应该如何在我的场景中使用RabbitMQ呢?

这里的规格:-有许多客户可以加入一个或多个聊天室。

  • 客户可以创建自己的聊天室和密码保护他们。
  • 当客户端断开连接时,有两种可能的实现: 1)无法读取先前的消息;2)他可以在登录前5分钟收到消息
  • 客户端可以发送私有消息。

现在,给出这个规范,使用RabbitMQ的最佳实践是什么?RabbitMQ给出了什么已经实现的功能?我正在使用C#,但我的问题更多地是关于软件体系结构的

我读过一些关于不同异常的文章,但我对使用什么以及如何组织队列表示怀疑。

主题交换是我所需要的吗?我应该如何实现它?

我的消费者(因此我的游戏客户端)应该在每次登录到服务器并将队列绑定到某个主题时创建一个队列吗?

正如你所看到的,我认为我对RabbitMQ如何管理这类事情还不太清楚

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

更新:也许我需要一个扇出交换机向我的客户端登录时创建的所有队列发送消息。

为了创建聊天室,我认为最好是创建一个服务器组件,当客户想要创建聊天室时,它可以监听特定的队列。

此时忽略的是如何处理对rabbitmq实例和聊天通道的身份验证。对于聊天通道,我可以将其委托给服务器组件(用户发送到队列"chat_authentication“,聊天室和密码,服务器组件发送到指定的客户端队列(如果可以的话),但如果有人直接将自定义客户端连接到我的rabbitMQ队列,这听起来并不安全,那么我应该如何实现授权呢?

EN

回答 1

Stack Overflow用户

发布于 2015-08-19 09:37:18

  1. 您可以为每个聊天室创建一个扇出交换,并允许用户创建他们的队列并绑定到它。
  2. 对于用户身份验证,您可以考虑集成LDAP类型的解决方案。

您也可以阅读我的文章:https://techietweak.wordpress.com/2015/08/14/rabbitmq-a-cloud-based-message-oriented-middleware/

了解RabbitMQ中不同的交易所。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30982373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档