<div dir="ltr">So according to your suggestion i have to use <a href="http://socket.io">socket.io</a>, or redis right? code that i sent will never work to detect client has been killed or not.<div><br></div><div>Demo that i sent you on prior mail, when i am killing the queue.js file from node server it will automatically deleted the queue.</div>

<div><br></div><div>Well thanks for quick reply. i have to think another way to accomplish my requirement + you link for presence exchange is not working. :(</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Mon, Jul 7, 2014 at 6:26 PM, Michael Klishin <span dir="ltr"><<a href="mailto:mklishin@gopivotal.com" target="_blank">mklishin@gopivotal.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class=""><br>
<br>
On 7 July 2014 at 16:46:36, Hitesh Dobariya (<a href="mailto:hitesh@artoonsolutions.com">hitesh@artoonsolutions.com</a>) wrote:<br>
> > 1) Amqp.js : This is the server in nodejs. when user connect to<br>
> server. server will generate the queue, and tell client to listen<br>
> to that queue in passive mode. in short client don't have access<br>
> for create queue. if i will listen from both side then queue will<br>
> not destroy automatically becuase my server (amqp.js) file's<br>
> queue consuming it. so i want that when client (queue.js) killed<br>
> or close. at that time server will notify that queue is destroyed,<br>
> and i will get all data like routing key when it destroy.<br>
<br>
</div>I think it's worth clarifying a few things. You do not consume in passive mode:<br>
queue.declare is what takes the passive argument. If you want the server to generate<br>
queue name and send it to the client for whatever reason, the use of<br>
passive declare is fine.<br>
<div class=""><br>
><br>
> Whereas amq.rabbitmq.event is the exchange, that will monitor<br>
> all the the events.<br>
> connection.queue("eventListener", { exclusive: true } , function(q){<br>
> q.bind("amq.rabbitmq.event","");<br>
><br>
> //i want to listen all events here when queue destroy when client<br>
> app killed.<br>
> q.subscribe(function (message, headers, deliveryInfo, messageObject)<br>
> {<br>
> console.log(JSON.stringify(headers));<br>
> })<br>
> });<br>
<br>
</div>Two things that stand out: you bind using an empty routing key and not<br>
"#". Perhaps that's just a typo.<br>
<br>
If a client is "destroyed" (I assume it means it has disconnected, hibernated,<br>
otherwise lost connection), only exclusive or auto-delete queues that had consumers<br>
will be deleted. But then amq.rabbitmq.event will not have a message published<br>
because it only tracks explicit queue.delete calls (I'm pretty sure this is the case but<br>
Simon can correct me).<br>
<div class=""><br>
><br>
> Above code will generate queue that will listen all the event<br>
> like exchange create, exchange delete, binding, queue created,<br>
> queue delete, etc..<br>
> I read in the documentation of the amqp-event plugin that it will<br>
> deliver all the event which are happing to all exchanges on the<br>
> rabbitmq server.<br>
<br>
</div>Yes but this will not include queues deleted due to TTL, disconnect of<br>
an exclusive queue owner, etc.<br>
<div class=""><br>
> 2) queue.js : it is the simple client that have only read access<br>
> to queue in passive mode only. if any event goes to this client<br>
> like queue delete then it's not helpful to me.<br>
<br>
> My main purpose is to listen event and get message when queue.js<br>
> will be killed or application killed in android.<br>
<br>
</div>So your problem is effectively a presence one. This brings us back to<br>
square one:<br>
<br>
«If your problem is primarily client presence detection, there's presence exchange: <br>
<a href="https://github.com/tonyg/presence-exchange." target="_blank">https://github.com/tonyg/presence-exchange.</a>»<br>
<br>
 Note that RabbitMQ is not the optimal solution for tracking client presence.<br>
Consider using a tool such as ZooKeeper or Redis.<br>
<div class="HOEnZb"><div class="h5">--<br>
MK<br>
<br>
Staff Software Engineer, Pivotal/RabbitMQ<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><b>Thanks,</b><div>Hitesh Dobariya,</div><div><font color="#333333">Artoon Solutions PVT. LTD</font></div>
</div>