AMQP as a spec, only really specifies how clients and brokers should talk to each other, and the features that brokers should expose to clients. It leaves the programming API open to interpretation. The rabbitmq-c library exposes a pretty raw and low-level interface to AMQP. It doesn't make any effort to solve common messaging idioms (like RPC, or a multi-threaded consumer), leaving that to the user of the library. <div>
<br></div><div>I hope to address this in a future version of the library, by making these these a part of the API or providing a higher-level API that provides solutions for these messaging patterns.</div><div><br></div><div>
-Alan<br><div><br></div><div><br><div class="gmail_quote">On Thu, Feb 16, 2012 at 9:41 PM, Eric J. Holtman <span dir="ltr"><<a href="mailto:eric@holtmans.com" target="_blank">eric@holtmans.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 2/16/2012 7:27 PM, Alan Antonuk wrote:<br>
><br>
> Thats one way to do it. Another would be to a have a "connection thread"<br>
> that would own the non-thread-safe objects, and would dispatch the messages<br>
> to the worker threads. It takes a bit more code to accomplish it but its<br>
<br>
</div>....<br>
<div><br>
> As a self-less plug, if you're looking for a C++ wrapper - I'd encourage<br>
> you to checkout SimpleAmqpClient <a href="https://github.com/alanxz/SimpleAmqpClient" target="_blank">https://github.com/alanxz/SimpleAmqpClient</a>,<br>
> which is Yet Another rabbitmq-c wrapper. It won't necessarily solve your<br>
> threading question though.<br>
><br>
<br>
</div>Thanks, Alan!<br>
<br>
I guess after reading through a couple of books, I was assuming<br>
that implementations of Rabbit (or AMQP) would make using multiple<br>
channels across threads easier.<br>
<br>
However, I spent today glancing over the actual protocol spec,<br>
and now I understand why rabittmq-c doesn't do that: there's<br>
just way too much state in each object.<br>
<br>
OK, I can live with it... I just wanted to be sure I wasn't<br>
fundamentally misunderstanding something.<br>
<div><div><br>
<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</div></div></blockquote></div><br>
</div></div>