2012-09-30 14 views
6

私はRabbitMQに依存するNode.jsアプリケーションを書いています。私はRabbitMQに接続するための選択ライブラリとしてnode-amqpを使用しています。RabbitMQとnode-amqp:確認モードのExchangeで確認が行われない - なぜですか?

私は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の者の中に見ることができるようにウェブ管理ツール)。

私は間違った方法で確認モ​​ードを理解しましたか?これはnode-amqpのバグですか?

すべてのヘルプは、適切なGitHub issueに答え

答えて

11

質問:-)いただければ幸いです:NPM上のノード-AMQPは古いバージョンです...現在の問題を回避するには、直接のGitHubからmasterブランチを使用することです。

これは、npmを使用してインストールする場合、https://github.com/postwait/node-amqp/tarball/masterを使用することを意味します。


アップデート2013年11月

私はこれらの日(約1年の私の元の質問の後に)再びRabbitMQのを使用していた、私は現状の更新を与えるために良いアイデアかもしれないと思ったようnode-amqpの

残念ながら、node-amqpの状態は1年前とまったく同じです。npmの公開バージョンはほとんど使用できません。私が1年前に遭遇したバグのいくつかはまだ残っています(私の質問からのものを含む)、その回避策はまだ有効です:GitHubから最新のマスターを入手してください。

+1

これはnode-amqp version 0.2.0で修正されているようです。公開されたnpmのバージョンが私のために働いています。 – chevett

関連する問題