В чем преимущество использования C2DM над сервером приложений? - PullRequest
2 голосов
/ 27 июля 2011

Почему сервер приложений не может отправлять сообщения непосредственно в приложение? Зачем вам нужен сервис C2DM в середине?

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

Чтобы отправить сообщение со стороны сервера, у вас есть две возможности:

  1. Клиент опрашивает на наличие новых сообщений через определенные промежутки времени. Недостаток : не решение в реальном времени. Если вы будете проводить слишком частые опросы, это приведет к разрядке батареи, потребляйте свою квоту (если у вас нет неограниченного пакета). Как правило, вы выполняете много ненужной работы и трафика, поскольку большинство опросов не возвращают сообщений.
  2. Оставайтесь на связи все время. Недостатки : технически сложно поставить, так как телефоны могут закрывать соединения при переходе в спящий режим. (По крайней мере, ничто не гарантирует, что они не будут). Также вы запускаете фоновое приложение 24/7.

Текущее состояние C2DM даст вам:

  1. Возможность получать сообщения, даже если ваше приложение не работает , так как Android запустит ваше приложение (часть, которую вы настроили, а не обязательно весь пользовательский интерфейс), когда придет сообщение.
  2. Центральный общий канал для доставки таких сообщений. Если 10 приложений нуждаются в уведомлениях в режиме реального времени на вашем телефоне, это одно средство, а не 10 запущенных приложений и опрос параллельно.
  3. Обещание: поскольку это санкционированный API Google для push-сообщений, вы можете ожидать его оптимизации в будущем. Одним из улучшений может быть обмен сообщениями на уровне несущей для инициирования сеанса C2DM. Это означает, что вы можете уснуть на 100% «умной» части телефона.
0 голосов
/ 02 августа 2011

Поскольку приложение не может (или не должно) действовать как сервер.

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

  1. соединения обычно защищены брандмауэром, вы не можете просто прослушивать какой-либо порт,
  2. ваше устройство может быть отключено или без подключения (тогда вам придется повторить попытку приложения),
  3. серверу приложений необходимо знать адрес вашего устройства,
  4. Приложение должно быть постоянно запущено (по крайней мере, серверный модуль), это не от батарей.
...