Node-red 如何将 Pattern 与 amqp 库和变量一起使用
Posted
技术标签:
【中文标题】Node-red 如何将 Pattern 与 amqp 库和变量一起使用【英文标题】:Node-red How to use Pattern with amqp lib and variable 【发布时间】:2018-10-19 14:04:34 【问题描述】:我在这个库中使用 Node-Red:node-red-contrib-amqp。 我正在连接到 RabbitMQ 服务器 (AMQP) 以使用路由键从主题中获取一些消息。
节点 AMQP 有一个选项卡,您可以在其中定义拓扑和 routing_key 以侦听具有特定路由的某些消息(AMQP 协议的功能)。
这说明了帮助:
在拓扑选项卡中,您可以定义 AMQP 服务器交换和队列 拓扑(交换、队列和绑定)。您在中定义拓扑 JSON 编辑器。
拓扑配置示例:
"exchanges": [
"name": "exchange1", "type": "direct", "options": "durable": false,
"name": "exchange2"
],
"queues": [
"name": "queue1", "options": "messageTtl": 60000,
"name": "queue2"
],
"bindings": [
"source": "exchange1", "queue": "queue1", "pattern": "debug", "args": ,
"source": "exchange1", "exchange": "exchange2", "pattern": "error",
"source": "exchange2", "queue": "queue2"
]
;
我想问是否有人知道如何使用该模式,但使用来自 Node-red 的变量。例如我使用了这种模式:
"source": "exchange_1", "exchange": "queue_name_1", "pattern": "*.*.rabbit",
我想要类似的东西:
"source": "exchange_1", "exchange": "queue_name_1", "pattern": inject_node.msg.payload,
inject_node 是一个带有字符串输入的注入节点。这样做的想法是根据流上的某些功能根据其他结果更改模式。我的意思是模式可能是“#”或“.orange.”(来自 RabbitMQ 教程的示例),但会根据某些函数结果而变化。
现在我已经有几个配置了特定模式的 AMQP 服务器,但这不是想法。
我有:
Node-RED 版本:v0.19.4 Node.js 版本:v10.9.0 Linux4.4.0-1069-aws x64 LE(亚马逊虚拟服务器 Ubuntu) RabbitMQ 3.7【问题讨论】:
【参考方案1】:不,拓扑是 AMQP-in
和 AMQP-out
节点的底层配置节点的属性。
由于节点已写入,因此无法在运行时更改。
【讨论】:
以上是关于Node-red 如何将 Pattern 与 amqp 库和变量一起使用的主要内容,如果未能解决你的问题,请参考以下文章
docker 如何将node-red 的 /data 文件映射到主机上
如何在 Node-RED 中使用 3rd 方 oauth 服务器包含单点登录?