Hi,<div><br></div><div>I am new to rabbitmq. I got the python &quot;getting started&quot; examples to work just fine.</div><div>I would like to be able to send messages between node.js (using node.amqp) and python/pika.</div>
<div><br></div><div>I can successfully receive a message in node.js using this code:</div><div><br></div><div>[receiver - node.js]</div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">var sys = require(&#39;sys&#39;);</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">var amqp = require(&#39;./amqp&#39;);</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div>
<font class="Apple-style-span" face="&#39;courier new&#39;, monospace">var connection = amqp.createConnection({ host: &#39;localhost&#39; });</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br>
</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">// Wait for connection to become established.</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">connection.addListener(&#39;ready&#39;, function () {</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  // Create a queue and bind to all messages.</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  // Use the default &#39;amq.topic&#39; exchange</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  var q = connection.queue(&#39;my-queue&#39;);</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  // Catch all messages</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  q.bind(&#39;#&#39;);</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"> </font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  // Receive messages</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  q.subscribe(function (message) {</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    // Print messages to stdout</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    sys.puts(sys.inspect(message));</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  });</font></div><div>
<font class="Apple-style-span" face="&#39;courier new&#39;, monospace">});</font></div><div><br></div><div>[sender - python/pika]</div></div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">#!/usr/bin/env python</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">import pika</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">connection = pika.AsyncoreConnection(pika.ConnectionParameters(</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        host=&#39;localhost&#39;))</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">channel = connection.channel()</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">channel.basic_publish(exchange=&#39;&#39;,</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                      routing_key=&#39;my-queue&#39;,</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                      body=&#39;Hello World!&#39;)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">print &quot; [x] Sent &#39;Hello World!&#39;&quot;</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">connection.close()</font></div>
</div><div><br></div><div>But I can&#39;t go the other way. I&#39;m not sure that the message sent by node.js is going anywhere. I&#39;ve looked at the unit tests for node.amqp (they all pass) but there is something I am missing, probably to do with exchanges or something. I&#39;d like to do something like this:</div>
<div><br></div><div>[sender - node.js]</div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">var sys = require(&#39;sys&#39;);</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">var amqp = require(&#39;./amqp&#39;);</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">var connection = amqp.createConnection({ host: &#39;localhost&#39; });</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">// Wait for connection to become established.</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">connection.addListener(&#39;ready&#39;, function () {</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  // Create a queue and bind to all messages.</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  // Use the default &#39;amq.topic&#39; exchange</font></div><div><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; ">  connection.publish(&quot;my-queue&quot;, {random_key:&quot;this is my message&quot;});</span></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  connection.end();</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  </font></div><div><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; ">});</span></div>
<div><br></div><div>[receiver - python/pika]</div></div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">#!/usr/bin/env python</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">import pika</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">import sys</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">connection = pika.AsyncoreConnection(pika.ConnectionParameters(</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        host=&#39;localhost&#39;))</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">channel = connection.channel()</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><span class="Apple-style-span" style="font-family: &#39;courier new&#39;, monospace; ">print &#39; [*] Waiting for messages. To exit press CTRL+C&#39;</span></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">def callback(ch, method, properties, body):</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    print body,</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    sys.stdout.flush()</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    </font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">channel.basic_consume(callback,</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                      queue=&#39;my-queue&#39;,</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                      no_ack=True)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div>
<font class="Apple-style-span" face="&#39;courier new&#39;, monospace">pika.asyncore_loop()</font></div></div><div><br></div><div>But nothing happens.</div><div><br></div><div>Another thing (possibly related?) that I run into is if I create a queue in python using, e.g.:</div>
<div><br></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">channel.queue_declare(queue=&#39;hello&#39;)</font></div><div><br></div><div>Then, in node.js, when I do:</div><div><br></div><div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  var q = connection.queue(&#39;hello&#39;);</font></div></div><div><br></div><div>I get this:<br><br></div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">Unhandled channel error: PRECONDITION_FAILED - parameters for queue &#39;hello&#39; in vhost &#39;/&#39; not equivalent</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">events:12</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">        throw arguments[1];</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">                       ^</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">Error: PRECONDITION_FAILED - parameters for queue &#39;hello&#39; in vhost &#39;/&#39; not equivalent</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at Queue._onMethod (/Users/dtenenba/dev/dev-amqp/node-amqp/amqp.js:1390:15)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at Connection._onMethod (/Users/dtenenba/dev/dev-amqp/node-amqp/amqp.js:784:28)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at AMQPParser.onMethod (/Users/dtenenba/dev/dev-amqp/node-amqp/amqp.js:698:12)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at AMQPParser._parseMethodFrame (/Users/dtenenba/dev/dev-amqp/node-amqp/amqp.js:415:10)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at AMQPParser.execute (/Users/dtenenba/dev/dev-amqp/node-amqp/amqp.js:196:20)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at Connection.&lt;anonymous&gt; (/Users/dtenenba/dev/dev-amqp/node-amqp/amqp.js:731:12)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at Connection.emit (events:31:17)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at IOWatcher.callback (net:489:16)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">    at node.js:773:9</font></div></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><meta charset="utf-8"><span class="Apple-style-span" style="font-family: arial; ">It appears that python&#39;s idea of a &#39;hello&#39; queue is different from that of node.amqp&#39;s. How can I do this so that I don&#39;t receive this error?</span></font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; ">Hope this is the right place for this question. If not please tell me where I should post it.</span></font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; ">Thanks</span></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; ">Dan</span></font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; "><br></span></font></div>