Я загрузил и настроил Android gcm-client и gcm-demo-server (http-сервер) с http://code.google.com/p/gcm/ . Мне удалось получать нисходящие сообщения в моем приложении Android gcm-client. Я провел множество тестов со следующими характеристиками:
- Сервер использовал либо ключ API браузера, либо ключ API сервера.
- Соединение для передачи данных было либо 3G, либо WiFi
- В отправленное сообщение включены/не включены дополнительные данные.
- В отправленном сообщении был/не был ключ свертывания.
- В отправленном сообщении для параметра delayWhileIdle установлено значение false.
- В отправленном сообщении для timeToLive установлено значение 0 или 5 минут.
- Сервер располагался в двух разных местах в Европе.
- Приложение для Android работает на двух устройствах, расположенных в разных местах Европы.
Во всех случаях приложение получает отправленные сообщения через 25-30 секунд с момента их отправки. Тем не менее, я протестировал другие приложения для Android, которые используют нисходящие сообщения GCM, и в большинстве случаев сообщения приходят почти мгновенно (‹5 секунд).
Могу ли я что-то изменить в клиенте или сервере, чтобы сообщения быстрее поступали в приложение?
Я также пытался использовать сервер gcm XMPP (приложение Java с использованием Smack), указанный в http://developer.android.com/google/gcm/ccs.html, но мне не удалось отправить ни одного сообщения. В ответе, который я получаю от GCM Cloud Connection Server (CCS), говорится: «Проект XXXXXXXXXX не внесен в белый список». Наиболее возможная причина заключается в том, что моя регистрация в CCM еще не одобрена, как описано в Google CCS. (GCM) - проект не внесен в белый список . Как я читал на разных сайтах, одобрение обычно занимает более 2-3 месяцев, поэтому, скорее всего, я не смогу протестировать сервер XMPP в ближайшее время.
Возможно ли, что вы можете получать почти мгновенные сообщения только с помощью сервера XMPP? Кто-нибудь сталкивался с задержками при использовании сервера XMPP?
заранее спасибо