Hello Rabbiteers!<div><br></div><div><br><div>I hope I&#39;m not being importune by posting this message to let you know about an LGPL Amqp implementation I&#39;ve recently written for PHP 5.3:</div></div><div><br></div><div>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="https://github.com/BraveSirRobin/amqphp">https://github.com/BraveSirRobin/amqphp</a></div><div><br></div><div>I&#39;ve implemented the 0.9.1 Amqp spec using a code-generation approach.  If any of the more experienced Amqp people were able to take a quick look at my code in order to provide feedback, or have any other advice I&#39;d be very grateful.  There&#39;s a UML class diagram showing the implementation classes here: <a href="https://github.com/BraveSirRobin/amqphp/raw/master/diag/amqp.png">https://github.com/BraveSirRobin/amqphp/raw/master/diag/amqp.png</a></div>
<div><br></div><div>Secondly, I have a question regarding using basic.consume on multiple channels.  Is it possible for message frames to be mixed up for basic.consume?  Section 4.2.6 of the spec says this:</div><div><br>
</div><div><div><i>Content frames on a specific channel are strictly sequential. That is, they may be mixed with frames for</i></div><div><i>other channels, but no two content frames from the same channel may be mixed or overlapped, nor may</i></div>
<div><i>content frames for a single content be mixed with method frames on the same channel.</i></div></div><div><br></div><div>What I find confusing is that a single &quot;message&quot; consists of a frame header, a content header and one or more content frames, for large messages there can be many content frames; a single message contains many frames.  For example, is it possible to get a content header frame on channel A, then a content header frame on channel B, then the message content for channel A, then the message content for channel B?  The testing I&#39;ve done so far indicates that RMQ always sends basic.deliver messages sequentially - it sends the content header then all content frames for a single message on a single channel in a non-interleaved fashion.  Is this always the case?  Is this what the spec guarantees?</div>
<div><br></div><div><br></div><div>Many thanks,</div><div>--Robin</div><meta http-equiv="content-type" content="text/html; charset=utf-8">