使用nodeJS移除RabbitMQ中的使用者

我试图让我的听众在我想要立即删除我的消费者之后只收听1条消息。 我怎么能做到这一点。 这里是代码。

queueListener:function(Queue,timeOut){ var deferred=sails.promise.defer(),timer,data; sails.amqp.connect('amqp://localhost', function(err, conn) { conn.createConfirmChannel(function(err, ch) { if(err){ conn.close(); deferred.reject(err); }else{ ch.assertQueue(Queue, {durable: true}); ch.prefetch(1); ch.consume(Queue,function(msg){ data=msg.content.toString(); clearTimeout(timer); ch.ack(msg); setTimeout(function(){ conn.close(); deferred.resolve(data); },0); },{noAck: false}); } }); timer=setTimeout(function(){ conn.close(); deferred.reject(new Error("Nothing in the Queue.")); },timeOut-5); }); return deferred.promise; } 

在上面的Queue中是它将要监听的队列,timeOut代表了我的监听器将要监听的时间。 如果它侦听一条消息,我想停止listen.And进一步侦听,我将下一次调用函数queueListner 。 虽然我做了conn.close()但在用户界面,它仍然显示消费者。 在这里输入图像描述

       

网上收集的解决方案 "使用nodeJS移除RabbitMQ中的使用者"