Как сделать систему чата на iPhone?

Я занимаюсь исследованием создания приложения на основе чата для iPhone (на самом деле это не текстовый чат в обычном смысле, но принципы те же).

Максимум 6 человек могут одновременно войти в один и тот же чат, и самый основной вопрос — как эффективно проверять наличие новых сообщений?

Нужно ли мне просто периодически опрашивать сервер? Или есть способ, которым я мог бы инициировать событие на телефоне с сервера всякий раз, когда появляется какой-то новый контент, на который стоит обратить внимание?

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

К сожалению, я не смогу настроить сервер сокетов для этого приложения, оно должно быть основано на обычной конфигурации LAMP.


person sinsro    schedule 01.08.2010    source источник


Ответы (3)


Я думаю, вы можете использовать push-уведомления или сервер XMPP (Jabber).

XMPP позволит вашему приложению для iphone получать данные даже в фоновом режиме, используя новые функции многозадачности (прослушивание сокета), и я почти уверен, что вы должны найти готовые к использованию серверы для LAMP (или, по крайней мере, реализации с открытым исходным кодом).

Обратите внимание, что API многозадачности iOS4 не поддерживает опрос в фоновом режиме, поэтому единственным вариантом должны быть push-уведомления. Если вы новичок в использовании push-уведомлений, вы можете использовать такую ​​службу, как Urban Airship, которая может упростить процесс.

person Ron Srebro    schedule 01.08.2010

XMPP звучит хорошо для вас, я думаю, что это лучшая технология для чата. Он также отлично работает в приложениях для iOS.

Возможно, этот пример кода будет полезен для начала использования XMPP в приложении iOS — посмотрите на этот пример кода QuickBlox Chat< /а>. Он демонстрирует, как интегрировать чат 1-1, чат в комнате в ваше приложение для Android. Также есть руководство, как это работает. Думаю не будет проблем интегрировать его в свое приложение. В противном случае - система Комментариев ниже позволяет задать любой вопрос и получить быстрый ответ.

Также есть демо-видео http://www.youtube.com/watch?feature=player_embedded&v=SncQaJBBW_0 как работает этот чат.

person Rubycon    schedule 21.12.2012

На мой взгляд, лучшее решение - сокет, но вы говорите, что не можете реализовать для этого серверную часть.

Вы также можете реализовать это с помощью push-уведомлений. Вы также можете получить push-уведомление, когда ваше приложение запущено, и отправить все необходимые данные внутри push-уведомления. Обычно сообщения в чате короткие...

Если вы не хотите возиться с push-уведомлениями на сервере, то, насколько я знаю, остается только опрос.

person Michael Kessler    schedule 01.08.2010