我正在向没有任何队列绑定的主题交换发送消息。只是一个空白的交换。通道创建为确认通道,每次发送消息时都会调用我的确认回调。奇怪的是,对于我收到的每条消息。
我是否做错了什么或误解了发布者确认的工作方式?我如何知道消息是路由到队列还是被交换器丢弃?
我正在使用 amqplib 作为节点。
好吧,可能我没有足够清楚地解释我的问题。所以这里有一些代码:
var amqp = require('amqplib/callback_api');
amqp.connect('amqp://host' , function(err, conn) {
conn.createConfirmChannel(function(err, ch) {
channel.assertExchange('my_awsome_exchange', 'topic', {durable: true});
channel.publish('my_awsome_exchange', 'routing_key', new Buffer('some data'),
{
mandatory: true
},
function(err){
// err is null no matter if a queue is bound to the exchange or not
console.log(err);
});
});
});
Run Code Online (Sandbox Code Playgroud)
如您所见,创建了一个交换,但还没有队列绑定到这个交换。所以我的期望是向这个交换发送消息永远不会被确认。@Teddy:我从文档中知道这一部分,这就是我如此困惑的原因。由于消息没有路由到任何队列,我本来希望消息会被拒绝。
归档时间: |
|
查看次数: |
6484 次 |
最近记录: |