我可以在node.js中指定RabbitMQ凭据吗?

 那朵逆风的蔷薇_708 发布于 2023-01-01 12:04

我开始使用rabbit.js从node.js应用程序连接到RabbitMQ.

我被阻止了:

错误:服务器关闭了通道:403(ACCESS-REFUSED),并
    在Channel.C.accept(/.../rabbit.js/node_modules/amqplib/lib/channel 上)显示消息"默认交换时不允许使用ACCESS_REFUSED - 操作" . js:398:24
    )
    在Socket.go(/.../ rabbit)的Connection.mainAccept [as accept](/.../ rabbit.js/node_modules/amqplib/lib/ connection.js :63:33). 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的凭据?如果没有,node.js的其他RabbitMQ客户端是否支持它们?

3 个回答
  • const amqp = require('amqplib/callback_api');
    
    const opt = { credentials: require('amqplib').credentials.plain('user', 'password') };
    amqp.connect('amqp://localhost', opt, (err, conn) => {});
    
    //
    

    2023-01-01 12:06 回答
  • 所以我自己从未使用过rabbit.js,但在深入研究代码后,它似乎正在使用amqplib.可以在这里看到解析它的代码,它似乎在调用标准的nodejs URL模块.因此,也许你可以尝试一些像这样的:

    amqp://user:pass@host.com/vhost
    

    希望能帮助到你!

    干杯.

    2023-01-01 12:06 回答
  • RabbitMQ遵循WHATWG URL标准,即:

    amqp://user:pass@sub.example.com:8080
    

    哪里:

    用户:用户名

    密码:密码

    sub.example.com:8080:主机:PORT

    样例代码:

    var amqp = require('amqplib/callback_api');
    
    amqp.connect('amqp://example.username:example.password@localhost', (err, conn) => {});
    

    问候

    2023-01-01 12:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有