2014-07-24 8 views
11

Ich begann mit Rabbit.js eine Verbindung zu RabbitMQ von einer node.js-Anwendung zu verbinden.Kann ich RabbitMQ-Anmeldeinformationen in node.js angeben?

Ich bin bei blockiert:

Error: Channel closed by server: 403 (ACCESS-REFUSED) with message "ACCESS_REFUSED -operation not permitted on the default exchange"
    at Channel.C.accept (/.../rabbit.js/node_modules/amqplib/lib/channel.js:398:24)
    at Connection.mainAccept [as accept] (/.../rabbit.js/node_modules/amqplib/lib/connection.js:63:33)
    at Socket.go (/.../rabbit.js/node_modules/amqplib/lib/connection.js:448:48)
    at Socket.EventEmitter.emit (events.js:92:17)
...

von der erwartet wird, da die Instanz von RabbitMQ ich konfiguriert ist, den Verlegern und Abonnenten benötigen Anmeldeinformationen zur Verfügung zu stellen, bevor die Nachrichtenwarteschlange verwenden zu können, und Gast Konto ist deaktiviert.

The official documentation of rabbit.js hat keine Anmeldeinformationen erwähnt. Google sucht nach "rabbit.js specify credentials" und "rabbit.js login password" war nicht eindeutig.

Werden Anmeldeinformationen von rabbit.js unterstützt? Wenn nicht, welche anderen RabbitMQ-Clients für node.js unterstützen sie?

Antwort

27

Also habe ich nie rabbit.js selbst benutzt, aber nachdem ich in den Code eingetaucht bin, scheint es amqplib zu verwenden. Der Code, der es analysiert, kann here gesehen werden und es scheint, dass es den Standard nodejs URL module aufruft. So können Sie vielleicht versuchen, etwas like this:

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

Hoffe, es hilft!

Prost.

+1

Normalerweise müssen Felder in einer Verbindungszeichenfolge URL-codiert sein ('% 20' usw.), aber es sieht so aus, als ob das Modul nicht richtig damit umgehen kann. Mindestens ein ':' im Passwort führt zu einem Fehler, auch wenn es richtig codiert ist. Vermeiden Sie spezielle HTTP-Zeichen wie '/', '.',': ','? 'Im Passwortfeld! – DanFromGermany

Verwandte Themen