试图连接到兔子mq

时间:2015-02-13 16:31:41

标签: node.js rabbitmq amqp

我是消息队列的新手,我正在尝试连接到使用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"

1 个答案:

答案 0 :(得分:0)

在绑定到队列之前必须存在队列,因此首先将其置为存在实际上是在绑定它之前需要做的事情。

请注意,队列的设置必须与首次创建队列的设置完全相同。