9

我正在尝试rabbitmq-tutorials,ruby 版本可以正常工作,但是 node.js 版本无法发送消息。我不知道出了什么问题。

var amqp       = require('amqp');
var amqp_hacks = require('./amqp-hacks');

var connection = amqp.createConnection({host: 'localhost'});

connection.on('ready', function(){
    connection.publish('hello_node', 'Hello World!');
    console.log(" [x] Sent 'Hello World!'");

    amqp_hacks.safeEndConnection(connection);
});

运行后node send.js,运行过程node recv.js无法接收任何内容。并且rabbitmqctl list_queues不显示hello_node队列。

4

1 回答 1

5

您需要指明队列然后发布。该版本应该有效:

    var amqp       = require('amqp');
    var amqp_hacks = require('./amqp-hacks');

    var connection = amqp.createConnection({host: 'localhost'});

    connection.on('ready', function(){
            connection.queue('hello_node', {'durable': false}, function(q){
                connection.publish('hello_node', 'Hello World!');
                console.log(" [x] Sent 'Hello World!' to 'hello_node'");

                amqp_hacks.safeEndConnection(connection);
            });
    });
于 2013-04-22T19:27:36.387 回答