Зачем нужны Push-уведомления?

Push-уведомления — это сообщения, отправляемые мобильному устройству со стороны сервера. Назначение Push-уведомлений может быть как служебное (например, сообщение об обновлении конфигурации), так и прикладное (текстовые сообщения в чате).

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

Основными недостатками при опросе является лишние затраты трафика и задержки при получении Push-уведомлений. Недостатком передачи по открытому TCP-каналу является необходимость корректной обработки ошибок и потери соединения для своевременного его восстановления.

Независимая система Push-уведомлений

Основным (и фактически единственным) оператором Push-уведомлений на Android-устройствах является Firebase Cloud Messaging (FCM), ранее Google Cloud Messaging (GCM). Несмотря на преимущества в виде надежности и безопасности работы сервиса, этот сервис является облачным и требует наличия аккаунта Google. К тому же, FCM может не работать на устройствах и сборках операционной системы, не сертифицированных Google.

Передача Push-уведомлений в системе Headwind MDM

Для того, чтобы платформа 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).