Node.jsアプリケーションからRabbitMQに接続するためにrabbit.jsを使い始めました。
私は次の場所でブロックされています:
エラー:サーバーによってチャネルが閉じられました:403(ACCESS-REFUSED)メッセージ "ACCESS_REFUSED -operation not allowed on the default exchange"が表示される
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)
Socket.go(/.../rabbit.js/node_modules/amqplib/lib/connection.js:448:48)
Socket.EventEmitter.emit(events.js:92:17)
...
私が使用するRabbitMQのインスタンスは、メッセージキューを使用する前にパブリッシャーとサブスクライバーに資格情報を提供するように要求するように構成されており、ゲストアカウントが無効になっているため、これは予想されます。
rabbit.jsの公式ドキュメント には資格情報の記載がありません。 「rabbit.js資格情報を指定する」と「rabbit.jsログインパスワード」をGoogleで検索すると、決定的ではありませんでした。
資格情報はrabbit.jsでサポートされていますか?そうでない場合、node.jsの他のRabbitMQクライアントはそれらをサポートしていますか?
自分でrabbit.jsを使用したことはありませんが、コードに飛び込んだ後は amqplib を使用しているようです。それを解析するコードは here で見ることができ、標準のnodejs RL module を呼び出しているようです。おそらくあなたは何かを試すことができます これのように :
amqp://user:[email protected]/vhost
それが役に立てば幸い!
乾杯。
RabbitMQはWHATWG URL Standardに従います。つまり、次のようになります。
amqp://user:[email protected]:8080
どこ:
サンプルコード:
var amqp = require('amqplib/callback_api');
amqp.connect('amqp://example.username:example.password@localhost', (err, conn) => {});
よろしく
const amqp = require('amqplib/callback_api');
const opt = { credentials: require('amqplib').credentials.plain('user', 'password') };
amqp.connect('amqp://localhost', opt, (err, conn) => {});
//