Сообщение не отображается на RMQ при отправке с устройства iPhone, в то время как Xcode делает
У меня есть поставщик Objective C, который отправляет сообщения для обмена на удаленном RMQ
сервер. У меня есть потребитель, слушающий очередь, привязанную к этому обмену. Я использую веер. когда приложение запускается из Xcode, все работает хорошо, сообщение отправляется, а его получает потребитель.
однако при запуске приложения с устройства iPhone сообщение не отображается в конце канала.
Вот мой метод отправки:
- (void) send {
RMQConnection *conn = [[RMQConnection alloc] initWithUri:@"amqp://<user>:<pass>@<ip>:5672"
delegate:[RMQConnectionDelegateLogger new]];
//RMQConnection *conn = [[RMQConnection alloc] initWithDelegate:[RMQConnectionDelegateLogger new]];
[conn start];
id<RMQChannel> ch = [conn createChannel];
RMQExchange *x = [ch fanout:@"logs"];
NSString *mobilemsg = @"{\"test\" : \"test\" }";
[x publish:[mobilemsg dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"Sent %@", mobilemsg);
[conn close];
}
1 ответ
Прежде всего, нужно кое-что проверить: ваш iPhone находится в той же сети, что и брокер RabbitMQ. Брокер работает на машине в локальной сети? Если да, подключен ли телефон к этой сети через Wi-Fi? Например, можете ли вы подключить HTTP-клиент с телефона к HTTP-серверу на той же машине, что и брокер Rabbit?
Пока еще не проводилось тестирование этого клиента на устройствах, так что вы можете быть абсолютно ошибочным. Пожалуйста, отправьте его на нашу страницу Проблемы, если вы считаете, что это так.
Мне было бы интересно посмотреть, что произойдет, если вы удалите [conn close];
линия. Этого не должно быть, но возможно, что внутренняя организация очередей не совсем верна и что она преждевременно закрывает соединение.