我是消息队列的新手,我正在尝试连接到使用https://github.com/squaremo/amqp.node为我设置的兔子mq实例,而且我肯定在奋斗总线上。
我从here那里得到了例子,我正试图插入我的价值观而且我没有在哪里。
以下是我收到的信息:
Server: myserver
Queue: uinotification
username: myuser
password: mypass
这是我尝试使用this示例,但我认为不必断言我需要绑定的队列(我认为)。
以下是bindQueue的文档:http://www.squaremobius.net/amqp.node/doc/channel_api.html#toc_39
我觉得我对交换片感到困惑。
amqp.connect('amqp://myuser:mypass@myserver').then(function(conn) {
process.once('SIGINT', function() { conn.close(); });
return conn.createChannel().then(function(ch) {
var ok = ch.assertExchange('logs', 'fanout', {durable: false});
ok = ok.then(function() {
//return ch.assertQueue('', {exclusive: true});
return ch.bindQueue('uinotification', 'logs', '');
});
/*ok = ok.then(function(qok) {
console.log('qok = ');
console.log(qok);
return ch.bindQueue(qok.queue, 'logs', '').then(function() {
return qok.queue;
});
});*/
ok = ok.then(function(queue) {
console.log('queue = ');
console.log(queue);
return ch.consume(queue, logMessage, {noAck: true});
});
return ok.then(function() {
console.log(' [*] Waiting for logs. To exit press CTRL+C');
});
function logMessage(msg) {
console.log(" [x] '%s'", msg.content.toString());
}
}).catch(function(err) {
console.error('err = '+err);
});
}).then(null, console.warn).catch(function(err) {
console.error('connect err = '+err);
});
以上是我上面代码的错误:
Channel closed by server: 404 (NOT-FOUND) with message "NOT_FOUND - no previously declared queue"
答案 0 :(得分:0)
在绑定到队列之前必须存在队列,因此首先将其置为存在实际上是在绑定它之前需要做的事情。
请注意,队列的设置必须与首次创建队列的设置完全相同。