Если я создаю обмен в rabbitmq, используя класс php amqp с типом обмена, установленным на direct
, и единственным указанным параметром является durable
, а затем попытаюсь подключиться к этому обмену в node.js, я получаю Cannot redeclare exchange with different options error
вы видите, если у вас нет вариантов, т матч.
Однако, насколько я могу судить, я использую точно такие же параметры (прямой тип и надежный вариант). Поэтому я сделал тест и создал один обмен в php с именем php_exchange
и один в node.js с именем node_exchange
и запустил rabbitmqctl list_exchanges
и получил интересный результат:
Listing exchanges ...
node_exchange direct
amq.headers headers
amq.direct direct
amq.match headers
amq.fanout fanout
direct
php_exchange direct
amq.topic topic
...done.
Что означает заголовок direct
в этом контексте (очевидно, что это не все обмены прямого типа, поскольку он указывает node_exchange как тип прямого)? Как я могу заставить node.js создать идентичный обмен amqp (чтобы он не терпел неудачу при подключении к надежному обмену)?
Я использую библиотеку PECL php amqp и библиотеку node-amqp (https://github.com/ry/node-amqp).
Спасибо.
РЕДАКТИРОВАТЬ:
Вот вывод rabbitmqctl list_exchanges name type auto_delete internal arguments
(остальные биржи удалены для краткости):
Listing exchanges ...
node_exchange direct false false []
php_exchange direct false false []
...done.