Если я создаю обмен в rabbitmq с использованием класса amqp в php с типом обмена, установленным на direct
, и указывается только durable
, то попробуйте подключиться к этому обмену в node.js, я получу Cannot redeclare exchange with different options error
Вы видите, если ваши варианты не совпадают.
Однако, насколько я могу судить, я использую те же самые опции (тип direct и опция durable). Итак, я сделал тест и создал один обмен в 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
в этом контексте (очевидно, это не все обмены типа direct, так как в нем перечисляется node_exchange как тип direct)? Как я могу получить node.js для создания идентичного обмена amqp (чтобы он не потерпел неудачу при подключении к долговременному обмену)?
Я использую библиотеку PECL php amqp и библиотеку node-amqp (https://github.com/ry/node-amqp)
Спасибо.
EDIT:
Вот вывод rabbitmqctl list_exchanges name type auto_delete internal arguments
(для краткости другие обмены удалены):
Listing exchanges ...
node_exchange direct false false []
php_exchange direct false false []
...done.