Какие могут быть проблемы с использованием HTTP push для мобильных устройств / приложений? - PullRequest
1 голос
/ 18 августа 2011

Я должен разработать план push-уведомлений для некоторых мобильных устройств, где push-уведомления еще не поддерживаются C2DM / APNS / BES и т. Д.MQTT также был хорошим вариантом, но я не мог получить MQTT-клиент для своей требуемой платформы.(Blackberry Playbook, только ActionScript)

Возвращаясь к основам, у меня были варианты Long Polling и потоковой передачи.Потоковая передача с использованием высокого значения keep-alive мне кажется полезной, так как разработка мобильного приложения (это не браузер) и серверный код находятся под моим контролем.Чтобы поддерживать соединение открытым, мне просто нужно время от времени пинговать сервер.

С какими проблемами я могу столкнуться при таком подходе?Я понимаю, что это будет постоянно открывать HTTP-соединение от устройства к серверу.Быстро ли разряжается время автономной работы мобильного устройства при постоянном открытии соединения с сервером?... В конце концов, данные не передаются, просто оставляя соединение открытым ... верно?

Ответы [ 3 ]

1 голос
/ 19 августа 2011

Возможно, вы захотите рассмотреть Urban Airship или взгляните на это руководство по технологиям реального времени .

Если реальное время действительно имеет значение, я говорю о секундах илимиллисекунды, а затем веб-технология реального времени, использующая WebSockets или HTTP Streaming - ваш лучший вариант, поскольку они доставляют обновления в момент их появления.Подобные вещи лучше всего подходят для приложений, которые пользователи активно используют в течение разумного периода времени, когда им нужны мгновенные уведомления или они взаимодействуют / общаются с другими.

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

0 голосов
/ 27 сентября 2011

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

Срок службы батареи - другое соображение, да, многие устройства не настолько эффективны, чтобы держать незанятое радио / 3G соединение открытым, и это разряжает батарею намного быстрее, чем отсутствие открытого соединения.

0 голосов
/ 18 августа 2011

Для какой платформы вы не можете найти MQTT-клиента? http://mqtt.org/software перечисляет клиентов практически на всех языках, которые я могу придумать, и больше, чем я хотел бы использовать. Клиентская библиотека mosquitto C является очень переносимой.

Время автономной работы действительно зависит от того, что вы делаете между keepalive ...

...