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》 

 

 

posted @ 2019-01-17 10:00  WesChan  阅读(3845)  评论(0编辑  收藏  举报