我正在使用使用 amqplib 的 send.js:
var rabbitMQ = require('amqplib');
rabbitMQ.connect('amqp://localhost').then(function(connection) {
connection.createConfirmChannel().then(function(channel){
channel.assertQueue('testQ').then(function(queue){
channel.sendToQueue('testQ', new Buffer('foobar'), {}, function(err, ok){
console.log(err?'nacked':'acked');
connection.close();
});
}, console.warn);
}, console.warn);
}, console.warn);
和一个使用 amqp 的 receive.js:
var amqp = require('amqp');
var connection = amqp.createConnection({ host: 'localhost' });
// Wait for connection to become established.
connection.on('ready', function () {
connection.queue('testQ', function (q) {
q.bind('#');
q.subscribe(console.log);
});
});
connection.on('error', console.log);
问题是,队列的默认选项不匹配。在使用 amqplib 发送后尝试使用 amqp 读取或在使用 amqp 订阅后使用 amqplib 发送时,我收到 406 precondition failed 错误。只要它有效,我很乐意在任何一种配置上进行调整。