节点.js AMQP 不返回回调
node.js AMQP not returning callback
我正在使用节点AMQP模块连接到RabbitMQ。我能够连接,创建交换,排队并能够将消息发送/发布到交换。我可以确认消息已发布在管理控制台上。
问题是我没有收到交易所发布调用的回调。这是我的代码。
初始化:(应用是快速.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");
}
});
从不调用回调函数(传输失败)。请帮忙!
Doc 不够清楚。当我们使用它时,
调用时: 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");
}
});
回调是一个函数,如果交换处于确认模式,就会被调用,发送的值将为真或假,这是错误的前提,如此真,意味着发生了错误和错误,意味着发布成功
所以我们应该在创建交易所时将交易所设置为确认模式
相关文章:
- 函数表达式,返回回调函数
- 如何“;等待”;以便返回回调
- jQuery,动画和动画返回.回调函数错误?:S
- 节点.js AMQP 不返回回调
- 返回回调函数 Node.js 的数据
- 承诺不返回回调数组
- 使用 jsonp 和 php 返回回调
- 订阅子作用域上的事件,并在broadcastemit中返回回调
- 为什么angular返回回调函数内部的函数
- Node.js:为什么要在错误处理期间返回回调的结果
- 如何构造代码以返回回调
- 具有HTTP请求的Meteor方法不返回回调
- 我如何返回回调MySQL查询和推到一个数组在Node.js
- 如何从使用node-oracledb的查询返回回调
- 直接调用回调或返回回调
- 设置变量返回回调监听器
- 泛型池函数返回回调的结果
- 回调中的AWS返回回调
- 我应该返回回调还是直接运行它
- 节点HTTPS请求没有在Lambda中返回回调函数