Я использую модуль AMQP для подключения к RabbitMQ. Я могу подключиться, создать обмен, очередь и отправить/опубликовать сообщение на обмен. Я могу подтвердить, что сообщения публикуются на консоли управления.node.js AMQP не возвращает обратный вызов
Проблема в том, что я не получаю обратный вызов для обмена публичным звонком. Это мой код.
Initialization (приложение является экземпляром express.js)
app.rabbitMQConnection = amqp.createConnection({ host: 'myurl.com', login: 'login', password: 'pwd' });
app.rabbitMQConnection.on('ready', function(){
console.log("RabbitMQ server connected");
app.rabbitMQConnection_e = app.rabbitMQConnection.exchange('my-exchange', { confirm: true, durable: true, autoDelete: false }, function (q) {
app.rabbitMQConnection_q_lisorders = app.rabbitMQConnection.queue('shoe-orders', {autoDelete: false, durable: true}, function (q) {
app.rabbitMQConnection_q_lisorders.bind(app.rabbitMQConnection_e, '#');
});
});
});
Затем, когда мне нужно отправить сообщение, я использую:
app.rabbitMQConnection_e.publish('routingKey', { message: myMessage }, { deliveryMode: 2 }, function(transmissionFailed){
if (transmissionFailed == true){
console.log("message failed");
}else{
console.log("message sent");
}
});
Callback функцию (transmissionFailed) никогда не вызывается. Пожалуйста помоги!
IIRC, node-amqp будет вызывать этот обратный вызов только в том случае, если вы включите публикацию acks в обмене. – SLaks
@SLaks Я установил {confirm: true} вариант для обмена. Пожалуйста, дайте мне знать, если это неверно. – user3658423