我正在编写一个依赖于 RabbitMQ 的 Node.js 应用程序。我使用 node-amqp 作为连接到 RabbitMQ 的首选库。
一旦我建立了与 RabbitMQ 的连接,我要做的第一件事就是创建一个交换:
var options = { autoDelete: false, confirm: true, durable: true, type: 'direct' };
connection.exchange('myExchange', options, function (myExchange) {
// ...
});
这完美地工作。如您所见,我正在使用创建交换confirm: true
,因此我希望交换之后处于确认模式。
现在,一旦我尝试发布消息,就会出现问题:
var options = {};
myExchange.publish('', { data: 'foobar' }, options, function () {
// ...
});
问题是publish
函数的回调从未被调用——尽管消息已成功发布(正如我在 RabbitMQ 的 Web 管理工具中看到的那样)。
我是否以错误的方式理解确认模式?这是 node-amqp 的错误吗?
任何帮助,将不胜感激 :-)