0

我正在使用使用 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 错误。只要它有效,我很乐意在任何一种配置上进行调整。

4

1 回答 1

2

在两端使用 amqplib 解决了这个问题。

于 2014-05-14T13:22:18.077 回答