<div dir="ltr"><div>Ben</div>
<div>�</div>
<div>As I see it, RabbitMQ is best used for routing messages with minimal or no processing.</div>
<div>You might compare it to Nginx that can modify URLs and http headers but you don&#39;t want to put your application logic there.</div>
<div>�</div>
<div>AMQP with RabbitMQ can provide the basic features of XMPP.</div>
<div>An app server or a RabbitMQ plugin�is needed to�handles�some logic and db integration.</div>
<div>Presence:</div>
<div>------------------</div>
<div>- Each user have a fanout exchange.</div>
<div>- Each online user has bindings to fanout exchanges of users in his roster.</div>
<div>- When a user changes his presence he publishes it to his exchange.</div>
<div>One To One:</div>
<div>------------------</div>
<div>- Each user has a queue named as his jid.</div>
<div>- Messages published to the direct exchange�with the user jid.</div>
<div>- You�can name the queue with unguessable string if you want them to be private.</div>
<div>Muc:</div>
<div>-----------------</div>
<div>- A fanout exchange with bindings to participants queues.</div>
<div>�</div>
<div>If you need more advanced XEPs, using AMQP might not be a good idea.</div>
<div>MUC, for example,�support affiliations, roles and privileges (owner, moderator, member, guest, room history, nickname...).</div>
<div>The same message might be sent with a different syntax to different users according to their privileges.</div>
<div>When messages need processing and complex�ACL you loose the power of AMQP.</div>
<div>�</div>
<div>ofir</div>
<div>�</div>
<div>�</div></div>