node.js整合rebbitmq(amqplib)
1.回调函数示例
var q = 'tasks';
var rabbitmq= {
hostname:"192.168.206.134",
port:"5672",
username:"admin",
password:"123456",
authMechanism: "AMQPLAIN" ,
pathname:"/",
ssl: {
enabled : false
}
}
function bail(err) {
console.error(err);
process.exit(1);
}
// Publisher
function publisher(conn) {
conn.createChannel(on_open);//创建信道
function on_open(err, ch) {
if (err != null) bail(err);
ch.assertQueue(q);//声明一个队列
ch.sendToQueue(q, Buffer.from('something to do'));//发送到队列
}
}
// Consumer
function consumer(conn) {
var ok = conn.createChannel(on_open);
function on_open(err, ch) {
if (err != null) bail(err);
ch.assertQueue(q);
ch.consume(q, function(msg) {//消费此队列消息
if (msg !== null) {
console.log(msg.content.toString());
ch.ack(msg);
}
});
}
}
require('amqplib/callback_api')
.connect(rabbitmq, function(err, conn) {//创建连接
if (err != null) bail(err);
consumer(conn);
publisher(conn);
});
2.Promise示例
var q = 'tasks';
var rabbitmq= {
hostname:"192.168.206.134",
port:"5672",
username:"admin",
password:"123456",
authMechanism: "AMQPLAIN" ,
pathname:"/",
ssl: {
enabled : false
}
}
var open = require('amqplib').connect(rabbitmq);
// Publisher
open.then(function(conn) {
return conn.createChannel();
}).then(function(ch) {
return ch.assertQueue(q).then(function(ok) {
return ch.sendToQueue(q, Buffer.from('something to do'));
});
}).catch(console.warn);
// Consumer
open.then(function(conn) {
return conn.createChannel();
}).then(function(ch) {
return ch.assertQueue(q).then(function(ok) {
return ch.consume(q, function(msg) {
if (msg !== null) {
console.log(msg.content.toString());
ch.ack(msg);
}
});
});
}).catch(console.warn);

浙公网安备 33010602011771号