Виртуальные сообщения Google - CCS (XMPP) и HTTP-сервер

Я прочитал документацию https://developer.android.com/google/gcm/index.html

и единственное различие, которое я вижу, заключается в том, что сервер на основе CCS (XMPP) допускает двунаправленную связь непосредственно между устройством android и сервером GCM.

Есть ли другие причины, по которым вы выбрали бы CCS (XMPP) через HTTP или наоборот?

Ответы

Ответ 1

CCS (XMPP) является асинхронным, что означает, что он должен быть быстрее HTTP. Он также использует существующее соединение GCM на устройстве для отправки сообщений из вашего приложения на ваш сервер (что экономит аккумулятор, так как вам не нужно открывать собственное подключение к вашему серверу).

С другой стороны, HTTP намного проще кодировать, поэтому, если вам не нужна двунаправленная функциональность или вам нужно отправлять сообщения с очень высокой скоростью, я бы придерживался HTTP.

Ответ 2

Вы можете транслировать сообщение на 1000 устройств за раз с одним вызовом http до gcm. Для трансляции http лучше, чем CCS.

Ответ 3

К сожалению, облачная платформа Google отключит XMPP API через год https://cloud.google.com/appengine/docs/deprecations/xmpp

Я бы выбрал XMPP, чтобы сохранять батареи устройств, из-за которых в наши дни это вызывает большую озабоченность!

Ответ 4

Из документов Google:

Вы можете продолжать использовать механизм запроса HTTP для отправки сообщений серверам GCM, бок о бок с CCS, который использует XMPP. Некоторые из преимуществ CCS включают:

Асинхронный характер XMPP позволяет отправлять больше сообщений с меньшим количеством ресурсов.

Связь двунаправленная - сервер не может отправлять сообщения на устройство, но устройство может отправлять сообщения обратно на ваш сервер.

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