If I create an exchange in rabbitmq using php's amqp class with exchange type set to direct and the only option specified is durable, then try to connect to that exchange in node.js, I get a Cannot redeclare exchange with different options error you see if you're options don't match.
However, as far as i can tell, i am using the exact same options (type direct, and option durable). So i did a test and created one exchange in php called php_exchange and one in node.js called node_exchange and ran rabbitmqctl list_exchanges and got some interesting output:
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.
What does the direct heading mean in this context (clearly it's not all exchanges of type direct, as it lists node_exchange as being of type direct)? How can i get node.js to create an identical amqp exchange (so that it won't fail when connecting to a durable exchange)?
I am using the PECL php amqp library and the node-amqp library (https://github.com/ry/node-amqp)
Thanks.
EDIT:
Here is the output of rabbitmqctl list_exchanges name type auto_delete internal arguments (with the other exchanges removed for brevity):
Listing exchanges ...
node_exchange direct false false []
php_exchange direct false false []
...done.