gpt4 book ai didi

javascript - node.js AMQP 不返回回调

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:39 24 4
gpt4 key购买 nike

我正在使用 Node AMQP连接到 RabbitMQ 的模块。我能够连接、创建交换、排队并能够向交换发送/发布消息。我可以确认这些消息已发布在管理控制台上。

问题是我没有收到交换发布调用的回调。这是我的代码。

初始化:(app是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");
}
});

回调函数(transmissionFailed)永远不会被调用。请帮忙!

最佳答案

文档不够清楚。当我们使用它时,

调用时:connection.exchange(name, options={}, openCallback)

然后回调中有交换对象,用于发布消息。

您的代码将是:

app.rabbitMQConnection.exchange('my-exchange', { confirm: true, durable: true, autoDelete: false }, function (q) {
app.rabbitMQConnection_e = q;
.....
});

然后:

app.rabbitMQConnection_e.publish('routingKey', { message: myMessage }, {  deliveryMode: 2 }, function(transmissionFailed){
if (transmissionFailed == true){
console.log("message failed");
}else{
console.log("message sent");
}
});

关于javascript - node.js AMQP 不返回回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com