it-swarm.com.ru

Реализация push-уведомлений сервера

Группа,

Я планирую внедрить свой собственный сервер уведомлений Server Push для приложений Android/IOS. Таким образом, мой сервер приложений (который может быть реализован через NodeJs) будет связываться с этим Notification Server для отправки сообщений на устройства. Поэтому я просмотрел интернет и нашел ниже существующие решения. 

Google Cloud Messaging

Служба уведомлений Apple Push

Firefox OS Push-уведомления

Служба уведомлений Microsoft Push


Q1) 
На своих соответствующих сайтах; они информировали только о том, как использовать свой сервер уведомлений. Однако мне нужна информация о том, как они реализовали свой сервер Push. 

Пожалуйста, скажите мне; они следуют за чем-то из этого ниже? 

Голосование

Длинный опрос

Streaming

Сервер отправил события

Соединения сокетов TLS, SSL или TCP с клиентом

XMPP


Q2) 

Ниже два метода утверждают, что хотя мое приложение не работает; они все еще могут отправлять уведомления в приложение? Как это возможно?

Служба уведомлений Apple Push

Firefox OS Push-уведомления


Q3)

В Firefox os Push-уведомления; они сообщили, что избегают keep-Alive, чтобы продлить срок службы батареи. У меня вопрос без keep-alive, как определить, связь еще жива или нет?


Q4)

Является ли это все (GCM/APNS/FireFox OS) реализация только на стороне сервера, и не будет принимать запросы от клиента. Я прав? 
Итак, мой сервер должен обрабатывать миллионы запросов устройств, кроме Push-сообщений, верно? 
Если я использую websocket между моим собственным сервером уведомлений и клиентскими устройствами, нужно ли поддерживать еще одно соединение websocket между моим сервером приложений и клиентами для получения запросов от устройств?

18
Kanagavelu Sugumar

Есть хорошие статьи, доступные через Интернет, вы можете пройти, вы получите ответы. Однако я пытаюсь ответить на ваш вопрос: Ответы в основном верны для серверов Android и Google.

Ans1) У них есть свои слушатели, которые вы должны использовать, используя их библиотечные классы в вашем коде. Вам не нужно беспокоиться о толкании. Вы должны отправить сообщение на сервер. Сервер отправит сообщение на устройство. Они используют OAuth . Что касается протоколов, есть два метода, использующих CCS и XMPP. CCS просто использует XMPP в качестве аутентифицированного транспортного уровня, поэтому вы можете использовать большинство библиотек XMPP для управления соединением. Чтобы отправлять уведомления на устройство, вы можете написать код в приложении для Android, а также код вашего сервера. отправка сообщения будет осуществляться только вашим кодом. Сервер Google позаботится об остальном ........ Подробности можно посмотреть по этой ссылке

http://developer.Android.com/google/gcm/server.html

Также по вопросам безопасности

безопасность обмена сообщениями в облаке Googlehttps://groups.google.com/forum/#!topic/Android-gcm/M-EevBitbhQ

Ответ 2) Да, если ваше приложение не запущено, устройства также могут получать уведомления, потому что вы должны написать код для слушателей вещания. В фоновом режиме он будет прослушивать сервер и всякий раз, когда будет присутствовать какой-либо пакет сообщения, он будет получать сообщение как уведомление. У Android есть сервис, который вам нужен, чтобы не беспокоиться об этом. Вам нужно только использовать эти ресурсы, используя библиотечный класс, который облегчает вашу работу и позволяет им писать, если ваше приложение не запущено, а также оно получает уведомление. Очевидно, что будет какой-то слушатель, который сделает приложение для получения. Проверьте раздел «Получить сообщение» в этой ссылке

http://developer.Android.com/google/gcm/client.html

Ответ 3) - Push-уведомления Firefox OS предназначены для одного - пробуждения приложений. Они не имеют дело с данными. Проверьте эту ссылку

https://hacks.mozilla.org/2013/07/dont-miss-out-on-the-real-time-fun-use-firefox-os-Push-notifications/

Ответ 4) - Нет, он также будет принимать запросы от пользователей . Я не уверен, что для других, но для GCM это подойдет . Пожалуйста, отметьте "Отправить сообщение"

http://developer.Android.com/google/gcm/client.html

Надеюсь, это помогло вам с вашим вопросом. 

9
ajitksharma

Уведомление Apple Push контролируется iOS, а не вашим приложением. Таким образом, это доступно, даже если приложение не запущено. Чтобы отправить уведомление, вы открываете ssl-соединение с сервером Apple и отправляете полезную нагрузку Push-уведомления. Нет никакого опроса или чего-то еще, так как iOS будет обрабатывать все. 

Если вы намереваетесь написать свой собственный сервер, вы не можете использовать Push-уведомление и разряжать батарею, поскольку вам нужно будет извлечь сообщение с вашего собственного сервера. Apple APNS контролируется iOS, она подключается к серверу Apple один раз и собирает все Push-уведомления для всех приложений на устройстве. 

8
rckoenes

Помимо технических деталей, существуют различные сторонние решения, такие как Amazon SNS. За миллион уведомлений должно быть около 0,5 доллара. Сравнивая эту крошечную стоимость с реализацией ваших собственных серверов/услуг (время, затраты, надежность), я чувствую, что вы должны уделить время другим аспектам вашего проекта. 

1
twb