Задать вопрос
@Lolman
Software Engineer

GCM как единый транспорт для instant messenger'а на android, ios, стоит ли?

Добрый вечер всем тем, кто это сейчас читает
Есть задача создать мессенджер для ios / android.

Есть классический old school - вариант: самому держать коннект к своему XMPP-серверу когда приложение в foreground и полагаться на GCM/APNS когда приложение в background. На сервере же проверять - если пользователь подключен - отправить xmpp, если отключен - push.

Но как недавно выяснилось GCM поддерживает в том числе и iOS, и манит своей бесплатностью и безлимитностью.
У гугла написано, что GCM для доставки сообщений в iOS использует APNS, но не написано - все ли время или только когда приложение background(а в остальное время держит свой собственный коннект)? Также не понятно как обстоят дела с контролем доставки, ведь у APNS это невозможно?
Надеюсь APNS используется только чтобы "разбудить" собственные механизмы доставки GCM.

Также на GCM многие жаловались по поводу времени доставки, но сейчас таких вопросов все меньше, что обнадеживает.

Вобщем, если у кого-то есть инфа как работает GCM на iOS или реальный опыт прошу высказать свое мнение.
Стоит ли использовать его как единый и единственный транспорт для всех сообщений?
  • Вопрос задан
  • 622 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@FoxInSox
Ни GCM, ни APNS не гарантирует сиюминутной доставки сообщения, так что делать их основой чата/мессенджера не целесообразно. Т.е. в худшем случае между собеседниками сообщения будут приходить с задержкой на которую стоит накладывать задержки связанные с проблемами в сети.

Большинство мессенджеров устанавливают сокетное соединение во время общения пользователей. Как только необходимость в нем пропадает, то оно рвется(принудительно или само), и уведомления о новых сообщениях приходят через APNS/GCM.

ps xmpp не лучший выбор. Даже где-то статья на хабре была от разработчиков которые писали мессенджер.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы