我正在将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是带有字符串输入的Inject节点。这样做的想法是根据Flow上的某些功能根据其他结果更改模式。我的意思是,模式可以是“#”或“ .orange。”(来自RabbitMQ教程的示例),但是会根据某些函数结果进行更改。
到现在,我已经配置了多个具有特定特征码的AMQP服务器,但这不是这个主意。
我有:
答案 0 :(得分:0)
否,拓扑是AMQP-in
和AMQP-out
节点的基础配置节点的属性。
在编写节点时,无法在运行时更改它。