当前位置: 首页 > 知识库问答 >
问题:

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

澹台鸿光
2023-03-14

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

我被封锁在:

错误:频道被服务器403(拒绝访问)关闭,并显示消息“拒绝访问-默认交换机上不允许操作”

这是预期的,因为RabbitMQ I使用的实例被配置为要求发布者和订阅者在能够使用消息队列之前提供凭据,并且访客帐户被禁用。

兔子的官方文件。js没有提到凭证。谷歌搜索“rabbit.js指定凭据”和“rabbit.js登录密码”没有结果。

rabbit.js?支持凭据吗?如果不支持,node.js的其他RabbitMQ客户端支持它们吗?

共有3个答案

曹旭东
2023-03-14

RabbitMQ遵循WHATWG URL标准,即需要:

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

哪里:

  • 用户:用户名
  • 通过:密码
  • sub.example。com:8080:主机:端口

示例代码:

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

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

当做

易流觞
2023-03-14
const amqp = require('amqplib/callback_api');

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

//
司寇善
2023-03-14

所以我从来没用过兔子。js本人,但在深入研究代码之后,它似乎正在使用amqplib。解析它的代码可以在这里看到,它似乎在调用标准的nodejsurl模块。因此,或许你可以尝试以下方式:

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

希望有帮助!

干杯

 类似资料:
  • 问题内容: 我可以在CSS中用某些东西代替maxlength属性吗? 问题答案: 否。这需要在HTML中完成。如果需要,可以使用Javascript设置值。

  • 大多数或所有核心hibernate配置属性都可以在启动属性文件中指定,以替代在hibernate.cfg.xml中指定映射。

  • 问题内容: 为了在Web上实时传输数据,我计划使用Redis作为我的Cache数据层,其中数据是瞬时的。Celery是队列管理器,RabbitMQ是从Redis排队进入Tornado层的代理。然后,该层通过websockets流到前端。 我从未在网上找到Redis + RabbitMQ组合。有人可以为它提供可靠的解决方案指南。问题是这样的整合是否可能和明智的? 问题答案: 我现在非常成功地一起使用

  • 问题内容: 该方法返回枚举实例的序数。 如何设置枚举的序数? 问题答案: 您无法设定。它始终是常量定义的序数。请参阅Enum.ordinal()的文档: 返回此枚举常量的序数(其在枚举声明中的位置,其中初始常量的序数为零)。大多数程序员都不会使用这种方法。它设计用于复杂的基于枚举的数据结构,例如EnumSet和EnumMap。 实际上-您不需要。如果要一些整数属性,请定义一个。

  • 问题内容: 在我的数据集中,一个文档包含20多个带有嵌套对象的字段。它们大多数是长文本字段。这些字段对于全文搜索很重要,但是我们只需要在输出中显示标题,简短描述和ID。 是否可以在ElasticSearch中为全文查询指定输出字段?(如MongoDB中的投影) 问题答案: 我认为您正在寻找搜索请求的属性: 允许有选择地为搜索命中表示的每个文档加载特定字段。默认情况下加载内部 字段。 这些字段将自动

  • 问题内容: 在boto上,当以这种方式连接到S3时,我通常指定我的凭据: 然后,我可以使用S3执行操作(在我的情况下,是从存储桶中删除对象)。 使用boto3,我发现的所有示例都是这样的: 我无法指定我的凭据,因此所有尝试均因错误而失败。 如何使用boto3指定凭据? 问题答案: 您可以创建一个会话: 然后使用该会话获取S3资源: