From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p8KBko7n026897 for ; Tue, 20 Sep 2011 13:46:50 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAJJ8eE5QRFuw/2dsb2JhbABCp1p4gVMBAQU6PxALDgocEhQoIYgMtDuGfQSkew X-IronPort-AV: E=Sophos;i="4.68,411,1312149600"; d="scan'208";a="109722905" Received: from furbychan.cocan.org ([80.68.91.176]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/AES256-SHA; 20 Sep 2011 13:46:45 +0200 Received: from rich by furbychan.cocan.org with local (Exim 4.72) (envelope-from ) id 1R5ymi-0004lk-K9; Tue, 20 Sep 2011 12:46:44 +0100 Date: Tue, 20 Sep 2011 12:46:44 +0100 From: "Richard W.M. Jones" To: Gerd Stolpmann Cc: caml-list Message-ID: <20110920114644.GI19949@annexia.org> References: <1301320989.8429.507.camel@thinkpad> <20110919170840.GA4596@annexia.org> <1316514375.16477.17.camel@thinkpad> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1316514375.16477.17.camel@thinkpad> User-Agent: Mutt/1.5.20 (2009-06-14) Subject: Re: [Caml-list] [ANN] Netamqp, a client for AMQP-0-9-1 On Tue, Sep 20, 2011 at 12:26:15PM +0200, Gerd Stolpmann wrote: > Am Montag, den 19.09.2011, 18:08 +0100 schrieb Richard W.M. Jones: > > On Mon, Mar 28, 2011 at 04:03:09PM +0200, Gerd Stolpmann wrote: > > > the ocaml team at Mylife is proud to release another library to the > > > public: Netamqp is a client of the AMQP-0-9-1 protocol which is used to > > > talk to message queue servers. Netamqp is an independent implementation > > > of such a client, and not simply a wrapper around a C library. Netamqp > > > has been tested against RabbitMQ. > > > > Gerd, have you tried to interoperate with any other language? > > Well, this was developed for Mylife in a project where the sender was > written in Python. (I don't have access to this code anymore, though, > since I left Mylife.) > > > I tried examples/t_sender.ml along with the following Python receiver > > (all on the same RabbitMQ instance), but the Python code didn't appear > > to see any messages at all. I'm quite probably doing something stupid. > > What's missing here is that you need to bind the queue to an exchange. > Remember that t_sender only sends the message to the exchange amq.direct > with a routing key of test_xy_routing_key. It does not send the message > to test_xy directly (which is not possible). Without binding, the > exchange just drops unroutable messages. > > Don't know exactly how to bind in Python, but watch out for a method > queue_bind. Thanks, that works. For future reference, below is the full working receiver. Rich. ---------------------------------------------------------------------- #!/usr/bin/python import pika connection = pika.BlockingConnection(pika.ConnectionParameters( 'localhost')) channel = connection.channel() channel.queue_declare(queue='test_xy') channel.queue_bind(exchange='amq.direct', queue='test_xy', routing_key='test_xy_routing_key') def callback(ch, method, properties, body): print " [x] Received %r" % (body,) channel.basic_consume(callback, queue='test_xy', no_ack=True) print ' [*] Waiting for messages. To exit press CTRL+C' channel.start_consuming() ---------------------------------------------------------------------- -- Richard Jones Red Hat