Зачем нужны Push-уведомления?
Push-уведомления — это сообщения, отправляемые мобильному устройству со стороны сервера. Назначение Push-уведомлений может быть как служебное (например, сообщение об обновлении конфигурации), так и прикладное (текстовые сообщения в чате).
Поскольку мобильное устройство чаще всего не может работать в режиме сервера (ожидать получения входящих сообщений) из соображений безопасности и из-за правил сотовых операторов, передача сообщений на устройство осуществляется либо по открытому TCP-каналу, либо путем периодического опроса сервера. У обоих способов есть свои достоинства и недостатки.
Основными недостатками при опросе является лишние затраты трафика и задержки при получении Push-уведомлений. Недостатком передачи по открытому TCP-каналу является необходимость корректной обработки ошибок и потери соединения для своевременного его восстановления.
Независимая система Push-уведомлений
Основным (и фактически единственным) оператором Push-уведомлений на Android-устройствах является Firebase Cloud Messaging (FCM), ранее Google Cloud Messaging (GCM). Несмотря на преимущества в виде надежности и безопасности работы сервиса, этот сервис является облачным и требует наличия аккаунта Google. К тому же, FCM может не работать на устройствах и сборках операционной системы, не сертифицированных Google.
Для того, чтобы платформа Headwind MDM не зависела от облачных сервисов и развертывалась исключительно на собственных (on-premise) серверах наших пользователей, мы включили в платформу независимую систему доставки Push-уведомлений, реализованную на протоколе MQTT (TCP). В качестве брокера Push-уведомлений используется встроенный брокер ActiveMQ.
Push-уведомления на основе протокола MQTT доступны в версии мобильного клиента 3.01 и выше. В более старых версиях платформы Push-уведомления реализованы с помощью опроса сервера (при этом сообщения доставляются с задержкой до 15 минут).
В настройках Push-уведомлений можно указать предпочтения по стратегии доставки — экономия заряда батареи или мгновенная доставка, в том числе в спящем режиме телефона, а также способ доставки — опрос сервера или передача через протокол MQTT.
Независимая от Firebase Cloud Messaging система Push-уведомлений может использоваться в том числе на специализированных сборках операционной системы Android, таких, как GrapheneOS, а также на не сертифицированных Google устройствах. Кроме того, Push-уведомления Headwind MDM будут работать, если все мобильные устройства находятся в внутренней корпоративной сети (LAN, VPN).
Использование платформы Push-уведомлений в приложениях
Если вы хотите включить использование Push-уведомлений в ваших приложениях, то руководство разработчика можно посмотреть по этой ссылке.