2012-09-30 11 views
6

Ich schreibe eine Node.js-Anwendung, die auf RabbitMQ beruht. Ich verwende node-amqp als die Bibliothek der Wahl, um eine Verbindung zu RabbitMQ herzustellen.RabbitMQ und node-amqp: Exchange im bestätigten Modus bestätigt nicht - warum?

Sobald ich eine Verbindung zu RabbitMQ hergestellt haben, erste, was ich tun werde, ist, einen Austausch zu schaffen:

var options = { autoDelete: false, confirm: true, durable: true, type: 'direct' }; 
connection.exchange('myExchange', options, function (myExchange) { 
    // ... 
}); 

Dieses perfekt funktioniert. Wie Sie sehen können, ich schaffe den Austausch confirm: true verwenden, daher erwarte ich, dass der Austausch danach in confirm Modus.

Jetzt ein Problem erscheint, wenn ich versuche, eine Nachricht zu veröffentlichen:

var options = {}; 
myExchange.publish('', { data: 'foobar' }, options, function() { 
    // ... 
}); 

Das Problem ist, dass der Rückruf der publish Funktion nie aufgerufen wird - obwohl die Nachricht erfolgreich veröffentlicht wurde (wie ich innerhalb RabbitMQ sehen kann Web-Management-Tool).

Verstandst I-Modus in einer falschen Weise bestätigen? Ist das ein Fehler mit node-amqp?

Jede Hilfe :-)

Antwort

11

Frage in dem entsprechenden GitHub issue beantwortet würde geschätzt: node-AMQP auf NPM ist eine alte Version ... aktuelle Problemumgehung ist den master Zweig von GitHub direkt zu verwenden.

Das bedeutet, wenn verwenden https://github.com/postwait/node-amqp/tarball/masternpm Verwendung installieren.


-Update November 2013

Wie ich RabbitMQ verwendet wurde wieder in diesen Tagen (etwa ein Jahr nach meiner ursprünglichen Frage), ich dachte, es könnte eine gute Idee sein, ein Update über den Status quo geben von Knoten-amqp.

Leider ist der Zustand von node-amqp genau so wie vor einem Jahr: Die veröffentlichte Version von npm ist kaum brauchbar. Einige der Bugs, die ich vor einem Jahr aufgetreten sind immer noch da (einschließlich der aus meiner Frage), so dass die gegebene Problemumgehung ist immer noch gültig: der neuesten Meister von GitHub Get.

+1

dies scheint in dem Knoten AMQP Version 0.2.0 behoben werden. Die veröffentlichte npm-Version funktioniert für mich. – chevett

Verwandte Themen