2012-09-30 12 views
6

Estoy escribiendo una aplicación Node.js que depende de RabbitMQ. Estoy utilizando node-amqp como la biblioteca de elección para conectarme a RabbitMQ.RabbitMQ y node-amqp: el intercambio en modo confirmado no confirma, ¿por qué?

Una vez que haya establecido una conexión con RabbitMQ, lo primero que voy a hacer es crear un intercambio:

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

Esto funciona perfectamente. Como puede ver, estoy creando el intercambio usando confirm: true, por lo tanto, espero que el intercambio esté en modo de confirmación después.

Ahora aparece un problema una vez que intento publicar un mensaje:

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

El problema es que la devolución de llamada de la función publish nunca es llamado - aunque el mensaje se ha publicado correctamente (que puedo ver dentro de RabbitMQ de herramienta de gestión web).

¿Comprendo el modo de confirmación de una manera incorrecta? ¿Es esto un error con node-amqp?

Cualquier ayuda sería apreciada :-)

Respuesta

11

pregunta contestada en el GitHub issue apropiada: node-amqp en la NGP es una versión antigua ... solución actual es utilizar la rama master de GitHub directamente.

Esto significa, use https://github.com/postwait/node-amqp/tarball/master al instalar usando npm.


actualización de noviembre de 2013

Como yo estaba usando RabbitMQ nuevo en estos días (alrededor de un año después de mi pregunta original), pensé que podría ser una buena idea para dar una actualización sobre la situación actual de nodo-amqp.

Desafortunadamente, el estado de node-amqp es exactamente el mismo que el de hace un año: la versión publicada de npm es difícilmente utilizable. Algunos de los errores que encontré hace un año todavía están allí (incluido el de mi pregunta), por lo que la solución dada sigue siendo válida: Obtenga el último máster de GitHub.

+1

esto parece estar solucionado en node-amqp versión 0.2.0. La versión publicada de npm funciona para mí. – chevett

Cuestiones relacionadas