RabbitMQ C++;客户消费者\u取消\u通知

RabbitMQ C++;客户消费者\u取消\u通知,rabbitmq,Rabbitmq,按照指导原则,我可以为客户端连接设置“consumer\u cancel\u notify”属性,但是当队列被删除时,客户端仍然没有注意到。我猜我可能必须重写某个方法或在某个地方设置回调,但在深入研究源代码之后,我不知道在哪里可以这样做。有人知道我会在哪里听到这个通知吗?好的,下面是我如何让它工作的: 创建队列(即“声明”队列)时,为“AMQP_取消”消息添加回调 在AMQPWEUE::sendConsumeCommand()中,在代码检查不同*frame.payload.method.id*s

按照指导原则,我可以为客户端连接设置“consumer\u cancel\u notify”属性,但是当队列被删除时,客户端仍然没有注意到。我猜我可能必须重写某个方法或在某个地方设置回调,但在深入研究源代码之后,我不知道在哪里可以这样做。有人知道我会在哪里听到这个通知吗?

好的,下面是我如何让它工作的:

  • 创建队列(即“声明”队列)时,为“AMQP_取消”消息添加回调
  • 在AMQPWEUE::sendConsumeCommand()中,在代码检查不同*frame.payload.method.id*s的while(1)循环中,添加对AMQP_BASIC_CANCEL_方法的检查,例如

        if (frame.payload.method.id == AMQP_BASIC_CANCEL_METHOD){
            cout << "AMQP_BASIC_CANCEL_METHOD received" << endl;
            if ( events.find(AMQP_CANCEL) != events.end() ) {
               (*events[AMQP_CANCEL])(pmessage);
            }
            continue;
        }
    
    if(frame.payload.method.id==AMQP\u BASIC\u CANCEL\u method){
    库特