Node.js amqplib何时关闭连接

时间:2017-08-15 18:15:45

标签: javascript node.js rabbitmq

我正在使用amqplib在node.js服务器中传输邮件。我在RabbitMQ official website看到了一个例子:

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://localhost', function(err, conn) {
  conn.createChannel(function(err, ch) {
    var q = 'hello';
    var msg = 'Hello World!';

    ch.assertQueue(q, {durable: false});
    // Note: on Node 6 Buffer.from(msg) should be used
    ch.sendToQueue(q, new Buffer(msg));
    console.log(" [x] Sent %s", msg);
  });
  setTimeout(function() { conn.close(); process.exit(0) }, 500);
});

在这种情况下,连接在超时功能中关闭。我不认为这是一种可行的方式。但是,ch.sendToQueue没有回调函数,允许我在发送消息后关闭连接。关闭连接有什么好处?

1 个答案:

答案 0 :(得分:0)

我正在使用Promise API,但是过程是相同的。首先,您需要呼叫google-umbrella.h,然后呼叫channel.close()

connection.close()返回一个布尔值。

  • 在准备好接受更多消息时正确
  • 当您需要在发送更多消息之前等待频道上的'drain'事件时为False。

这是我使用channel.sendToQueue()的代码:

async/await