2014-10-22 3 views
0

На много поисков о кролике MQ я нашел объектную C-обертку для librabbitmq-c, чья ссылка направлена ​​на librabbitmq-objc.Как интегрировать клиентскую библиотеку mk rabbit

Для получения ссылки librabbitmq-c https://github.com/alanxz/rabbitmq-c.

Я пытался интегрировать как в моем приложении большим количеством ошибок производятся как

i) <Cocoa/Cocoa.h> file not found 
ii) <amqp.h> file not found 
iii)Too few arguements passing to amqp_basic_consume() method in AMQPConsumer.m 
iv) Use of undeclared identifier AMQ_PLATFORM in amqp_socket.c file. 
v) Use of undeclared identifier AMQP_EXCHANGE_TYPE_DIRECT in AMQPExchange.m 
vi) ""---------""----- ""------- AMQP_EXCHANGE_TYPE_FANOUT in ""---""------- 
vii)--""-----------""----------- AMQP_EXCHANGE_TYPE_TOPIC in ""----""------- 

Я также попробовал последнюю версию librabbitmq-с по этой ссылке https://github.com/alanxz/rabbitmq-c/releases/download/v0.5.2/rabbitmq-c-0.5.2.tar.gz

Первый и второй вопрос решается путем замены <Cocoa/Cocoa.h> с <Foundation/Foundation.h> и <amqp.h> с "amqp.h"

Но я не в состоянии решить остальные из них

Моя реализация клиентской библиотеки приведен ниже: -

NSString *workQueueName = @"MyQueue"; 

AMQPExchange *exchange; 
AMQPConnection *connection = [[AMQPConnection alloc] init]; 

[connection connectToHost:@"localhost" onPort:5672]; 
[connection loginAsUser:@"guest" withPasswort:@"guest" onVHost:@"/"]; 

AMQPChannel *receiverChannel = [connection openChannel]; 

AMQPQueue *queue = [[AMQPQueue alloc] initWithName:workQueueName 
              onChannel:receiverChannel 
              isPassive:NO 
             isExclusive:NO 
              isDurable:NO 
            getsAutoDeleted:YES]; 

exchange = [[AMQPExchange alloc] initFanoutExchangeWithName:@"EXCHANGE_NAME" onChannel:receiverChannel isPassive:NO isDurable:NO getsAutoDeleted:NO]; 

[queue bindToExchange:exchange withKey:workQueueName]; 


AMQPConsumer *consumer = [[AMQPConsumer alloc] initForQueue:queue onChannel:receiverChannel useAcknowledgements:NO isExclusive:NO receiveLocalMessages:YES]; 

AMQPConsumerThread *wqThread = [[AMQPConsumerThread alloc] initWithConsumer:consumer]; 
wqThread.delegate = self; 

[wqThread start]; 

Любая помощь в отношении Rabbit MQ будет понятно, спасибо

ответ

1

После длительного периода времени, я решил.

Пожалуйста, обратитесь по этой ссылке для библиотеки

https://dl.dropboxusercontent.com/u/75870052/AMQPLib.zip

и смотрите ссылку на Подробнее ...

https://stackoverflow.com/a/26601155/1305001

+0

Я также ударил в выше вопрос. У меня есть все файлы библиотеки, все равно я получаю ,,, файл не найден. Пожалуйста, помогите мне. –

Смежные вопросы