首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RabbitMQ和node-amqp:确认模式下的Exchange不确认-为什么?

RabbitMQ和node-amqp:确认模式下的Exchange不确认-为什么?
EN

Stack Overflow用户
提问于 2012-09-30 23:27:00
回答 1查看 2.8K关注 0票数 6

我正在编写一个依赖于RabbitMQ的Node.js应用程序。我使用node-amqp作为连接RabbitMQ的首选库。

一旦我建立了与RabbitMQ的连接,我要做的第一件事就是创建一个exchange:

代码语言:javascript
复制
var options = { autoDelete: false, confirm: true, durable: true, type: 'direct' };
connection.exchange('myExchange', options, function (myExchange) {
  // ...
});

这个可以完美地工作。正如您所看到的,我正在使用confirm: true创建交换,因此我希望交换之后处于确认模式。

现在,当我尝试发布消息时,出现了一个问题:

代码语言:javascript
复制
var options = {};
myExchange.publish('', { data: 'foobar' }, options, function () {
  // ...
});

问题是publish函数的回调从未被调用过--尽管消息已经成功发布(正如我在RabbitMQ的web管理工具中看到的那样)。

我对确认模式的理解有误吗?这是node-amqp的bug吗?

任何帮助都将不胜感激:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-05 02:15:47

在相应的GitHub issue中回答的问题: npm上的node-amqp是旧版本...当前的解决方法是直接使用GitHub中的master分支。

这意味着,在使用npm进行安装时使用https://github.com/postwait/node-amqp/tarball/master

更新2013年11月

因为这些天我又在使用RabbitMQ (大约在我最初的问题一年后),我想更新一下node-amqp的现状可能是个好主意。

不幸的是,node-amqp的状态与一年前完全相同: npm发布的版本很难使用。我一年前遇到的一些bug仍然存在(包括我问题中的那个),所以给定的解决方法仍然有效:从GitHub获取最新的主控程序。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12662413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档