2012-01-31 82 views
1

我有以下代碼。我的節點版本是v0.7.0-pre。當我運行代碼屏幕打印node-amqp交換回調未被調用

Setup 
Completed setup 

它不會打印Exchange回撥消息。當我運行

rabbitmqctl --list_exchanges 

命令我看到新的交流越來越創建,但回調是沒有得到調用。我查看了測試用例,這似乎不是一個涵蓋的案例。讓我知道這是否是一個錯誤,如果有解決方法

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); 
+0

我很願意回答這個問題,但不幸的是你給我的代碼運行正常我的機器上,給這個輸出:完成 '設置 設置cf1演示 交換回調# – mattbornski 2012-01-31 18:49:36

+0

您的代碼是好的,因爲@mattbornski提到。這可能是一些關於節點版本的警告 - 可能由於api更改或其他原因,插件不支持最新的不穩定版本。它絕對適用於節點0.6.8和amqp 0.1.1。 – elmigranto 2012-01-31 20:51:04

+0

我正在運行Ubuntu 11.04 x86_64。當我運行一個rabbitmqctl報告時,我看到rabbitMQ版本爲2.7.1。我改變了我的節點到nodev0.6.8,我仍然得到相同的行爲。我不確定如何找到amqp – 2012-02-01 08:26:05

回答

0

這是node-amqp是舊版本的問題。這似乎是儘量安裝與NPM一個問題,因爲我自己看着辦