[转]RabbitMQ学习之:(十二)在Node.js环境下使用RabbitMQ

本文转自:https://blog.csdn.net/puncha/article/details/8452017

学,以致用。找了半天Node.js下RabbitMQ的库,看上去都不太趁手,直到最后找到了amqp库,看上去倒还不错,照着例子,写了第一个RabbitMQ的客户端。

首先,使用 npm install amqp --save 来安装node-amqp库,虽然他推荐使用全局安装,但是不去管它!

以下是客户端代码:

  1.  
    var ampq = require('amqp');
  2.  
    var util = require('util');
  3.  
     
  4.  
    var connection = ampq.createConnection();
  5.  
     
  6.  
    var bStop = false;
  7.  
     
  8.  
    connection.on('ready', function () {
  9.  
    connection.queue('moneyQueue', { durable: true, autoDelete: false }, function (queue) {
  10.  
    console.log('Queue ' + queue.name + ' is open!');
  11.  
    queue.subscribe(function (message, header, deliveryInfo) {
  12.  
    if (message.data) {
  13.  
    var messageText = message.data.toString()
  14.  
    console.log(messageText);
  15.  
    if (messageText === "quit") bStop = true;
  16.  
    }
  17.  
    });
  18.  
    });
  19.  
    });
  20.  
     
  21.  
     
  22.  
    (function keepItRunning() {
  23.  
    if (!bStop)
  24.  
    setTimeout(keepItRunning, 1000);
  25.  
    else
  26.  
    connection.end();
  27.  
    })();


这个就是一个echo客户端,有消息过来,就打印出来,然后默默等待下一条消息。假如消息是quit,则优雅的退出~ 

其中,通过代码创建了一个可持久化的Queue: MoneyQueue,这个Queue自动会绑定到默认的Exchange,这个Exchange是RMQ提供的,所以也是持久的,这样就没问题了。

因为这个只是一个Consumer,没法单独工作,要验证的话,可以通过RMQ的管理页面,发送消息。

原文地址:https://www.cnblogs.com/freeliver54/p/9674742.html