1

背景:我对 RabbitMq 很陌生,我刚刚安装它并尝试使用它。

所以,我有 RabbitMq 在 ec2(ubuntu) 上运行,并且一个 node.js 服务器作为在本地机器上运行的 RabbitMq 客户端(用于通过 websockets 发布/订阅)我还在 RabbitMq 上启用了 MQTT 协议,以便在端口 1883 上运行

使用 node.js 我使用MQTTClient但是每当 node.js 服务器与 RabbitMq 连接时,都会引发错误,连接被拒绝:错误的用户名或密码

我打算为 RabbitMQ 服务器使用基于密钥的身份验证,以便浏览器中的 websockets 发送一个编码字符串,node.js 服务器解码并获取一个 KEY 并将该 KEY 发送到 RabbitMQ ,然后 RabbitMQ 决定它是否存在。

我找到了另一个很棒的 RabbitMQ 插件,rabbitmq-auth-backend-http但这需要用户名/密码,它可以是密钥/ID 组合。

我正在寻找建议,我该如何实现?

还有一个问题是 node.js 客户端都没有发送用户名/密码,这是否意味着我也必须编写一个 node.js 客户端?

4

1 回答 1

0

该 MQTT 客户端似乎确实支持用户名和密码,请尝试在创建连接时传入的选项对象中设置它们。默认的 RabbitMQ 用户是guest,密码guest

我不明白您为什么要使用 RabbitMQ 作为身份验证后端,因为它是消息队列,而不是身份存储。您提到的 auth 插件似乎允许您使用另一个 HTTP 服务器向 RabbitMQ 验证客户端,但不允许 RabbitMQ 处理身份管理。

于 2013-03-02T08:41:35.393 回答