zoukankan      html  css  js  c++  java
  • 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》 

  • 相关阅读:
    VM player无法联网问题
    寄存器
    linux下的文件操作
    linux的切换目录操作
    linux的ls -al指令
    python对ASC码的加减
    ASC码速记
    pyhton的返回值
    intellij 调试方法
    2015,5.10
  • 原文地址:https://www.cnblogs.com/weschen/p/10157422.html
Copyright © 2011-2022 走看看