Почему мобильные устройства должны периодически проверять серверы на наличие обновлений? - PullRequest
2 голосов
/ 07 июля 2011

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

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

Ответы [ 4 ]

2 голосов
/ 07 июля 2011

То, что вы описываете, называется "серверный запрос".Некоторые мобильные приложения действительно используют push-сообщения сервера.А у Google на самом деле есть технология, упрощающая реализацию, которая называется «Обмен сообщениями между облаками и устройствами» (C2DM).Он работает так, что серверы отправляют крошечное маленькое сообщение через C2DM-сервер Google в приложение, работающее на устройстве, информируя его о времени обновления.И затем устройство получает актуальное обновление с исходного сервера (а не с C2DM).

Хорошие вещи.Это позволяет сервису прослушивания для C2DM удается разбудить телефон и все.Недостатком является то, что пользователю приложения требуется учетная запись Google.Однако для пользователей Android это не является недостатком.

0 голосов
/ 19 июля 2011

Дело в том, что трудно узнать адрес мобильного устройства в любое конкретное время, IP-адрес является динамическим, на сервере адрес намного более стабилен, поэтому устройство знает, что оно всегда найдет Google в Google.com, но у Google нет никакого реального способа узнать, где найти устройство, он не знал бы, куда пинговать в первую очередь.

Это - то, где толчок приходит, есть различные реализации, но я думаю, что они работаютустройство поддерживает соединение с сервером и восстанавливает его, если оно потеряно.См. http://en.wikipedia.org/wiki/Push_technology

Это, конечно, гораздо сложнее реализовать и поддерживать, чем простое извлечение клиента.

0 голосов
/ 07 июля 2011

Вот как это делает Android.Он отправляет уведомления на устройство, и этот API открыт для сторонних разработчиков, поэтому они могут отправлять уведомления своим пользователям.

0 голосов
/ 07 июля 2011

За исключением случаев, в некоторых случаях.В разделе «Почта, контакты, календари» в настройках моего iPod есть подменю с надписью «Извлечь новые данные», в котором есть опция, позволяющая почтовому серверу или какому-либо другому «отправить» данные на iPod.Аспект Fetch, для которого вы можете установить расписание, предназначен для случаев, когда Push отключен или вы синхронизируете приложения, которые не поддерживают push.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...