Могу ли я указать учетные данные RabbitMQ в node.js?

Я начал использовать rabbit.js для подключения к RabbitMQ из приложения node.js.

Я заблокирован:

Ошибка: канал закрыт сервером: 403 (ACCESS-REFUSED) с сообщением "ACCESS_REFUSED - операция не разрешена при обмене по умолчанию"
  на Channel.C.accept(/.../rabbit.js/ node_modules/amqplib/lib/channel.js:398:24)
  в Connection.mainAccept [as accept] (/.../rabbit.js/node_modules/amqplib/lib/connection.js:63:33)
  на Socket.go(/.../rabbit.js/node_modules/amqplib/lib/connection.js:448:48)
  на Socket.EventEmitter.emit(events.js: 92: 17)
...

который ожидается, поскольку экземпляр RabbitMQ я используется для того, чтобы требовать от издателей и подписчиков предоставления учетных данных, прежде чем использовать очередь сообщений, а гостевая учетная запись отключена.

Официальная документация rabbit.js не упоминает учетные данные. Google ищет "rabbit.js указать учетные данные" и "пароль для входа в rabbit.js" были неубедительными.

Учетные данные поддерживаются rabbit.js? Если нет, то какие другие клиенты RabbitMQ для node.js поддерживают их?

Ответ 1

Поэтому я никогда не использовал rabbit.js сам, но после погружения в код, похоже, он использует amqplib. Код, который его анализирует, можно увидеть здесь, и кажется, что он вызывает стандартный URL-модуль nodejs URL module. Поэтому, возможно, вы можете попробовать что-то подобное:

amqp://user:[email protected]/vhost

Надеюсь, это поможет!

Приветствия.

Ответ 2

RabbitMQ следует стандарту URL WHATWG, то есть он принимает:

amqp://user:[email protected]:8080

Куда:

  • Пользователь: Имя пользователя
  • Пароль: Пароль
  • sub.example.com:8080: Хост: PORT

Образец кода:

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://example.username:[email protected]', (err, conn) => {});

С уважением