0

我正在开发一个应用程序,我只是想知道 RabbitMQ 是否有可能允许所有客户端将消息推送到特定队列,并且只有经过身份验证的用户才能使用该队列中的消息?我似乎找不到任何关于此的内容:/

基本上我的模型是这样的:客户端都连接到同一个队列并推送他们的消息。此外,每个客户端都应该在接收消息的地方注册自己的队列(每个客户端都有唯一的队列)。

所以基本上客户端会将消息发送到一个队列,并且只有我的服务器应用程序应该能够从中读取,处理数据并将回复发送到特定的用户队列(只能由该用户读取并且只有服务器应该在其上发布) .

我想这是可能的吧?有人可以引导我走向正确的方向,在哪里可以找到有关这些东西/示例/教程的更多信息

4

1 回答 1

1

因此,开箱即用的 AFAIK 是不可能的,但您有 2 个选项:

  1. 如果您熟悉 erlang,则可以为 rabbitmq 编写自己的插件(这不需要额外的 erlang 知识 - 只是基础知识)
  2. 您可以创建 2 个虚拟主机并在每个主机上进行交换(vhost A 用于读取 vhost B 用于写入)。在虚拟主机 B 中创建交换,并使用路由键将其绑定到特定队列。在虚拟主机 A 中创建联合交换[1]。简介:联邦交换允许映射交换到上游交换,这意味着映射交换将接收来自上游交换的所有消息。因此,在虚拟主机 A 中进行交换 E1 并将其映射到虚拟主机 B 中的交换 E2。对于每个虚拟主机,您可以创建不同的用户。

[1]:http ://www.rabbitmq.com/federation.html - 这是关于联邦插件的手册,其中包含现成的示例。

于 2012-05-14T20:41:02.630 回答