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