• [转]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的管理页面,发送消息。

  • 相关阅读:
    单片机I/O口推挽与开漏输出详解(力荐)
    wifi
    SDIO总线协议
    [hi3521] nand flash 的 boot 启动模式的区别?
    常见SOC启动流程分析
    PWM通过RC低通滤波器模拟DAC
    海思 core 电压动态调整
    USB线上/串口/I2C引脚串联电阻的作用
    几种flash存储芯片的用途和分类
    示波器分析I2C时序波形图
  • 原文地址:https://www.cnblogs.com/freeliver54/p/9674742.html
Copyright © 2020-2023  润新知