не удается открыть получатель, связанный с выражением x-match заголовка приложения - PullRequest
0 голосов
/ 04 марта 2019

Я использую rhea (https://github.com/amqp/rhea), библиотека node.js для разработки клиентов AMQP 1.0.

Я пытаюсь адаптировать https://github.com/amqp/rhea/tree/master/examples/selector пример с использованием выражение x-match вместо выражения JMS.

Цель состоит в том, чтобы реализовать механизм маршрутизации заголовка на основе совместимого с AMQP 1.0 брокера (ActiveMQ, Qpid, ...).

Я пробовал этот код в соответствующем разделе в recv.js:

connection.open_receiver({
    source: {
        address: 'amq.match',
        filter: {
            'x-match': 'all',
            value: {
                'nat': 'it',
                'prod': 'a22'
            }
        }
    }
})

Получено сообщение об ошибке подключения "Ожидаемый тип значения -« Фильтр », но получен« Строка »amqp: decode-ошибка "от Java-брокера Qpid (отн. 7.1.0).

1 Ответ

0 голосов
/ 05 марта 2019

Согласно этому ответу, полученному на rhea github repo:

https://github.com/amqp/rhea/issues/200#issuecomment-469220880

Фильтр должен соответствовать описанному значению.Попробуйте что-то вроде этого:

connection.open_receiver({
    source: {
        address: 'amq.match',
        filter: {
            'foo': amqp_types.wrap_described({
                'nat': 'it',
                'prod': 'a22',
                'x-match': 'all'
            }, 0x468C00000002)
        }
    }
});

где:

var amqp_types = require('rhea').types;

Это работает только с Qpid cpp, не работает с ActiveMQ и Qpid java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...