Один запрос на несколько асинхронных ответов - PullRequest
5 голосов
/ 16 ноября 2010

Итак, вот проблема. iPhone - это круто, но пропускная способность и задержка - это серьезные проблемы с приложениями, имеющими серверные требования. Мой первоначальный план для решения этой проблемы состоял в том, чтобы сделать несколько запросов на биты данных (каламбур непреднамеренно) и таким образом решить проблему с множеством входящих / исходящих данных. Это плохая идея по многим причинам, наиболее очевидным для меня является то, что моя плохая база данных (MySQL) не может справиться с этим очень хорошо. Из того, что я понимаю, лучше запрашивать большие куски сразу, особенно если я собираюсь просить все это в любом случае.

Проблема сейчас в том, что я снова жду, когда пройдет большое количество данных. Мне было интересно, есть ли способ отправлять серверу кучу идентификаторов для получения из базы данных, а затем этот SINGLE-запрос отправляет множество маленьких ответов, каждый из которых содержит всю информацию об одной записи в БД. Заказ не имеет значения, и в идеале я мог бы отправить еще один запрос на сервер, чтобы он прекратил отправлять мне вещи, потому что у меня есть то, что мне нужно.

Я понимаю, что это, вероятно, НЕ простая вещь, чтобы сделать это, если вы (классные) парни могли бы указать мне правильное направление, что также было бы невероятно.

Текущая система - iPhone (Какао // Objective-C) -> PHP -> MySQL

За тонну заранее.

1 Ответ

3 голосов
/ 17 ноября 2010

AFAIK, один запрос не может получить несколько ответов. Из того, что вы спрашиваете, кажется, что вам нужно сделать это в двух частях.

Часть 1: Отправьте один звонок с идентификаторами.

Ваш сервер отвечает одним сообщением, содержащим URL-адреса или информацию, необходимую для вызова уникальных «меньших» ответов.

Часть 2: Работая из этого списка ответов, запустите несколько запросов, которые выполняются в своих собственных потоках.

Я думаю об этом, как о том, как работает веб-страница. Вы вызываете URL-адрес HTML в веб-браузере. HTML-код сообщает браузеру все места / URL-адреса, которые необходимы ему для получения дополнительных фрагментов (изображений, CSS, JS и т. Д.) Для создания полной страницы.

Надеюсь, это поможет.

...