[rabbitmq-discuss] C++ client options
Daniel Pocock
daniel at pocock.com.au
Wed Aug 7 21:49:47 BST 2013
On 07/08/13 20:10, Alan Antonuk wrote:
> As Petr mentioned: all of the C++ libraries listed wrap rabbitmq-c. The
> major difference I see between the the different libraries mentioned is how
> well they handle asynchronous events. rabbitmq-c doesn't provide a lot of
> support API wise for dealing with async events like basic.deliver, or a
> channel.close as a result of a basic.publish failure.
Does this mean we need to block and/or use threads to receive messages?
Do you envisage making it work like boost::asio or have you seen
anything like that for AMQP?
> SimpleAmqpClient tries to make some of the async bits more synchronous at
> the expense of performance. As far as I can tell the others listed don't do
> much in the way of error handling at a protocol level.
>
> My (biased) opinion is to use SimpleAmqpClient. That said, you should
> evaluate the API and the performance of the library and see if it fits your
> needs.
>
> Full disclosure: I'm the maintainer behind both SimpleAmqpClient and
> rabbitmq-c
Did you collaborate with anybody for the Debian package of the C client?
http://packages.debian.org/jessie/librabbitmq-dev
Has anybody discussed a package of the C++ client?
Just some background: I'm mentoring a student with Google Summer of
Code, he is making some changes to the reSIProcate project
reSIProcate is a strongly object-oriented C++ project, so to remain
consistent with the code style, using C++ would be nice. Regular C
could be used too. Some parts of the stack use asio, other parts use a
similar, single threaded async model.
What we have here is a SIP voice conferencing application:
https://github.com/resiprocate/reConServer
The original version of the code just takes commands and prints
responses through stdin/stdout. We would like to replace that with JSON
over RabbitMQ / AMQP
E.g.
- when a new caller dials in, a JSON message goes out on a topic
- the admin can send an instruction over a queue (e.g. move caller A
from room 1 to room 2)
More information about the rabbitmq-discuss
mailing list