Простое приложение для чата на iPhone - PullRequest
0 голосов
/ 13 июня 2011

Я использую Titanium для разработки приложения для iPhone, в котором есть небольшой компонент чата между пользователями iPhone (не SMS, а настоящий чат клиент-сервер)

Это мой подход: мой бэкэнд будет в ASP.NET, каждый раз, когда пользователь отправляет сообщение, он сохраняет [message_id, from_id, to_id, message_content], а затем у получателя будет таймер, который обновляет каждый 5 секунд, чтобы получить новые сообщения из базы данных сервера ASP.NET.

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

Я слышал о программировании сокетов, но является ли это хорошим подходом в этой ситуации и как мне начать с ним?

Спасибо

Ответы [ 3 ]

1 голос
/ 13 июня 2011

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

1 голос
/ 14 июня 2011

Было бы целесообразно использовать push-уведомления только тогда, когда приложение работает в фоновом режиме, а не когда пользователь фактически общается в чате.Это то, для чего изначально были разработаны push-уведомления.

Опрос сервера через http - это хорошее решение, и существуют методы для сохранения полосы пропускания, которые вы можете использовать, например, обновление частоты опроса в зависимости от активности пользователя.(без чатов в течение нескольких минут, уменьшите время опроса до 30 секунд).

Вы не можете использовать push-уведомления для приложения чата, потому что вы не можете получать столько уведомлений в минуту, чтобы чат казался реальным-время.А простой http-опрос на сервере может быть таким же маленьким, как один двоичный пакет, и существенно не повлиять на полосу пропускания пользователя.

0 голосов
/ 13 июня 2011

Почему бы вам просто не воспользоваться системой push-уведомлений Apple?Всякий раз, когда пользователь получает сообщение, ваш сервер может отправить push-уведомление на iphone, и iphone либо загружает новые сообщения всякий раз, когда получает push-сообщение, либо, если сообщение не слишком длинное, вы просто отправляете сообщение непосредственно в push-уведомлении

...