У меня проблема. Я прочитал много тем на stackoverflow об этой проблеме, но ничего не помогло. Я пытаюсь реализовать связь клиент-сервер через кометное соединение. У меня есть экземпляр, который отвечает за отправку сообщений, и экземпляр, который отвечает за получение сообщений. Процесс следующий: - Экземпляр отправки отправляет запрос GET на сервер, сервер отвечает на экземпляр получения. Первый вызов работает нормально, я получаю первый ответ и могу получить нужные мне данные, но следующий запрос не запускает мой обратный вызов didReceiveData. Но я вижу, что сервер отправил данные, я вижу это в журналах сервера и вижу это в wirehark на клиентской машине. Интересная вещь: первый ответ не запускал мой обратный вызов до того, как я добавил в ответ «длина содержимого: 0». Недокументированная функция NSUrlConnection? Что еще я должен учитывать, чтобы NSUrlConnection считал, что ответ действителен? Альтернатива: принудительно извлекать данные из сокета, но я не знаю, возможно ли это с помощью NSUrlConnection (человек молчит об этом)
постоянный код подключения:
NSURL* requestUrl = [NSURL URLWithString:[[NSString alloc] initWithUTF8String:rq->url.c_str()]];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:requestUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:600];
m->connection = [[NSURLConnection alloc] initWithRequest:request delegate:request_delegate() startImmediately:NO];
[m->connection scheduleInRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
[m->connection start];