版权声明:本文为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
2.1、node-amqp所在的github地址(含API说明)
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。