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

来源:互联网 发布:windows10风扇控制软件 编辑:程序博客网 时间:2024/04/27 20:28

一、测试条件:

1.1、ubuntu服务器平台

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

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

#!/bin/shecho "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.listwget -c http://www.rabbitmq.com/rabbitmq-signing-key-public.ascapt-key add rabbitmq-signing-key-public.ascapt-get updateapt-get install -y rabbitmq-server g++ makerm -fr rabbitmq-signing-key-public.ascrabbitmq-plugins enable mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_managementrabbitmqctl delete_user guestrabbitmqctl add_user admin adminrabbitmqctl 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
地址:https://github.com/postwait/node-amqp


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。

0 0
原创粉丝点击