Node-red Как использовать Pattern с amqp lib и переменной - PullRequest
0 голосов
/ 19 октября 2018

Я использую Node-Red с этой библиотекой: node-red-contrib-amqp.Я подключаюсь к серверу RabbitMQ (AMQP), чтобы получать некоторые сообщения из темы с помощью ключа маршрутизации.

Узел AMQP имеет вкладку, на которой можно определить топологию и ключ_оценки для прослушивания некоторых сообщений с определенныммаршрутизация (функция протокола 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-красный.Например, я использовал этот шаблон:

{"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 (виртуальный сервер Amazon Ubuntu)
  • RabbitMQ 3.7

1 Ответ

0 голосов
/ 19 октября 2018

Нет, топология является свойством базового узла конфигурации для узлов AMQP-in и AMQP-out.

Поскольку узел записан, изменить его во время выполнения невозможно.

...