【问题标题】:node-amqp exchange callback not being invoked未调用 node-amqp 交换回调
【发布时间】:2012-01-31 17:34:50
【问题描述】:

我有以下代码。我的节点版本是 v0.7.0-pre 。当我运行代码时,屏幕会打印出来

 Setup
 Completed setup

它不打印 Exchange 回调消息。当我运行

rabbitmqctl --list_exchanges  

command 我看到新的交换被创建了,但是回调没有被调用。我查看了测试用例,这似乎不是一个涵盖的案例。让我知道这是否是一个错误以及是否有解决方法

var util= require('util')
var amqp = require('amqp');

function setup() {
  console.log("Setup");
  var exchange = conn.exchange('cf1-demo',
    {'type': 'fanout', durable: false},
    function() {
    console.log("Exchange Callback");
 });
 console.log("Completed setup %s", exchange.name);
}
var conn = amqp.createConnection({host:'localhost',
                                    login:'guest',
                                    password:'guest'},
                             {defaultExchangeName: "cf1-demo"});
conn.on('ready',setup);

【问题讨论】:

  • 我很想回答这个问题,但不幸的是,你给我的代码在我的机器上运行良好,输出如下:Setup Completed setup cf1-demo Exchange Callback
  • 您的代码没问题,正如@mattbornski 所说。这可能是关于节点版本的一些警告——可能由于 api 更改或其他原因,插件不支持最新的不稳定版本。它绝对适用于节点 0.6.8 和 amqp 0.1.1。
  • 我正在运行 Ubuntu 11.04 x86_64 。当我运行 rabbitmqctl 报告时,我看到 rabbitMQ 版本为 2.7.1 。我将我的节点更改为 nodev0.6.8 并且我仍然得到相同的行为。我不确定如何找到 amqp 的版本
  • 您将在npm ls 输出或与模块相关的package.json 文件中看到amqp 版本。顺便说一句,我的 RabbitMQ 版本是 2.7.1。代码在 Ubuntu x86_64 中测试:10.10 和 11.10。
  • 感谢我的 amqp 版本说 0.0.2 。让我获取最新版本并更新结果。我以为我做了 npm install amqp 。有不同的方法吗?

标签: node.js rabbitmq node-amqp


【解决方案1】:

这是 node-amqp 是旧版本的问题。据我所知,这似乎是 npm install 的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2017-09-15
    相关资源
    最近更新 更多