Rabbit MQ について何度も検索したところ、目的の C ラッパーが見つかりましたlibrabbitmq-c
。そのリンクはlibrabbitmq-objcに向けられています。
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-c の最新バージョンも試しましたhttps://github.com/alanxz/rabbitmq-c/releases/download/v0.5.2/rabbitmq-c-0.5.2.tar.gz
とを置き換えることで解決される 1 番目と 2 番目の<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に関するヘルプをいただければ幸いです。