我們正在嘗試構建一個包含nodejs,rabbitmq和mongodb的聊天應用程序。爲了更快地傳遞消息,我們使用rabbitmq。由於我對這個概念很陌生,如果有人願意,請幫助我。我正在使用節點amqp模塊連接到rabbitmq服務器(https://www.npmjs.org/package/amqp)。使用節點amqp庫檢查RabbitMQ中是否存在隊列的方法
我聲明交換下面給出:
變種AMQP =要求( 'AMQP'); VAR amqpconnection = amqp.createConnection({主機: '本地主機'}); VAR交換= amqpconnection.exchange( 'Exchange',{confirm:true,type:「direct」,durable:true,autoDelete:false},function(exchange){});
我發佈使用下面的方法的消息:
exchange.publish( 'receiver_queue',消息,{持久性:真,強制性:真},功能(數據){的console.log(「消息發佈「);執行console.log(數據);});
我的問題是,當我發佈到已存在的隊列中時,發佈回調中,我們收到'false'響應,但是當我發佈到根本不存在的隊列時,在發佈回調,我們仍然得到'虛假'的迴應;爲什麼這樣?有什麼方法可以在發佈之前檢查隊列是否存在?
u能請解釋一下你正在嘗試在上述代碼做時使用
queue_declare
,但經過passive = true
標誌? –有關您的實物信息,請查找以下內容:強制性參數默認爲false。如果消息不能被路由到隊列,該標誌告訴服務器如何反應。如果設置了該標誌,服務器將返回帶有Return方法的不可路由消息。如果此標誌爲false,則服務器將自動丟棄該消息。 –
雖然這個代碼塊可能會回答這個問題,但最好能提供一些解釋爲什麼它會這樣做。 – PlasmaHH