Nodejs 接收RabbitMQ消息


參考官方地址:https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html

關於C#消息發送端,請參考《c# RabbitMQ 發送消息》 

 

該文章中,只是消息的接收端,使用Nodejs,其中最重要的一個庫是RabbitMQ官方給出的amqplib,文章中的代碼都是參考官方的示例

首先安裝amqplib

npm install amqplib --save

 

然后創建index.js,內容如下

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://localhost', function (err, conn) {
  conn.createChannel(function (err, ch) {
    var q = 'UploadMachineStatus';

    //接收端
    ch.assertQueue(q, { durable: true });

    console.log(" [*] Waiting for messages in queue %s. To exit press CTRL+C", q);

    //接收端
    ch.consume(q, function (msg) {
      console.log(" [x] %s", msg.content.toString());
    }, { noAck: true });
  });
});

promise版本

var q = 'UploadMachineStatus';
var open = require('amqplib').connect('amqp://localhost');

// Consumer
open.then(function (conn) {
  return conn.createChannel();
}).then(function (ch) {
  return ch.assertQueue(q).then(function (ok) {

    return ch.consume(q, function (msg) {
      if (msg !== null) {

        console.log(msg.content.toString());
        ch.ack(msg);
      }
    });

  });
}).catch(console.warn);

 

效果圖,當消息發送端發出了消息后,在Nodejs消息接收端會比較及時的收到消息

 

文章參考:《架構設計之NodeJS操作消息隊列RabbitMQ》 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM