在Nodejs下与Rabbitmq消息服务器通信(node-amqp)

发布者:leekwenty
发布于:2019-02-18 13:09
版权声明:本文为LeeKwen的原创文章,请联系微信@leekwenty后转载。 https://blog.csdn.net/leekwen/article/details/38896931

一、测试条件:

1.1、ubuntu服务器平台

首先,安装好Nodejs及Rabbitmq消息服务器(Ubuntu下的Rabbitmq消息服务器的安装,可以直接使用此脚本Rabbitmq-install.sh)。

Rabbitmq-install.sh 脚本代码如下:

#!/bin/sh

echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list

wget -c http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

apt-key add rabbitmq-signing-key-public.asc

apt-get update

apt-get install -y rabbitmq-server g++ make


rm -fr rabbitmq-signing-key-public.asc


rabbitmq-plugins enable mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_management


rabbitmqctl delete_user guest

rabbitmqctl add_user admin admin

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

rabbitmqctl set_user_tags admin administrator


/etc/init.d/rabbitmq-server restart

假定服务器已经安装好上述两种服务,而且消息服务器的用户名/密码均为admin/admin.

1.2、安装nodejs与Rabbitmq消息服务器交互所需的node-amqp模块。


运行如下命令:

 [leekwen@ubuntu ~] mkdir node-amqp; cd node-amqp
 [leekwen@ubuntu node-amqp]$ npm install rabbitmq; npm install amqp

二、node-amqp模块的使用方法及测试实例


2.1、node-amqp所在的github地址(含API说明)


node-amqp is an AMQP client for nodejs


2.2、使用node-amqp的测试实例

测试代码如下:

/*
* Install Rabbitmq Server
* Install nodejs && nmp
* Run those commands:
* [leekwen@ubuntu ~] mkdir node-amqp; cd node-amqp
* [leekwen@ubuntu node-amqp]$ npm install rabbitmq
* [leekwen@ubuntu node-amqp]$ npm install amqp
*/
var amqp = require('amqp');

var connection = amqp.createConnection({url: "amqp://admin:admin@127.0.0.1:5672"});
connection.on('ready', function () {
    var callbackCalled = false;
	exchange = connection.exchange('exchange_name', {type: 'direct',autoDelete:false});
    connection.queue("queue_name",{autoDelete:false}, function(queue){
    queue.bind('exchange_name','queue_name', function() {
		exchange.publish('queue_name', 'this is message is testing ......');
		 callbackCalled = true;
		 
	 setTimeout(function() {
     console.log("Single queue bind callback succeeded");
	 //exchange.destroy();
     //queue.destroy();
	 connection.end();
     connection.destroy();
     }, 5000); 
		 
  });

    queue.subscribe(function (message) {
      console.log('At 5 second recieved message is:'+ message.data);
    });
	
  });
});

具体使用请参照node-amqp的相关API。


声明:该文观点仅代表作者本人,转载请注明来自看雪