2

私はiOSアプリケーションを開発しており、RabbitMQにprofmaadのobjective-cクライアントを使用してい ます https://github.com/profmaad/librabbitmq-objc

これは、接続を確立してイベントのリッスンを開始するために使用しているコードです。

-(void)establish{

   AMQPConnection *connection = [[AMQPConnection alloc] init];
   [connection connectToHost:<host> onPort:<port number>];
   [connection loginAsUser:<username> withPasswort:<password> onVHost:<vHost>];

   AMQPChannel *channel = [connection openChannel];
   AMQPQueue *queue = [[AMQPQueue alloc] initWithName:<queue name> onChannel:channel isPassive:NO isExclusive:NO isDurable:NO getsAutoDeleted:NO];

   AMQPConsumer *consumer = [[AMQPConsumer alloc] initForQueue:queue onChannel:channel useAcknowledgements:YES isExclusive:NO receiveLocalMessages:NO];
   AMQPConsumerThread *consumerThread = [[AMQPConsumerThread alloc] initWithConsumer:consumer];
   consumerThread.delegate = self;
}
-(void)amqpConsumerThreadReceivedNewMessage:(AMQPMessage *)theMessage
{
   NSLog(@"message = %@", theMessage);
   NSLog(@"message.body = %@", theMessage.body);
}

問題は、amqpConsumerThreadReceivedNewMessage が呼び出されないことです。

4

1 に答える 1

3

最初にコンシューマ スレッドを開始する必要があります。

[consumerThread start];
于 2012-12-27T17:33:15.233 に答える