Надежное получение сообщений

Надежная доставка сообщений – это самая важная функция любого приложения для обмена сообщениями на Android. Также важно реализовать обмен сообщениями с учетом состояния системы и времени автономной работы. В этом документе описаны основные стратегии и инструменты, которые помогут обеспечить стабильную, эффективную и надежную доставку сообщений в ваше приложение для Android.

Механизмы доставки сообщений

Наилучший подход к надежному обмену сообщениями зависит от конкретных требований вашего приложения. Учитывайте следующие факторы:

  • Текущие потребности в реальном времени
  • Частота сообщений
  • Ограничения батареи

Обмен сообщениями в реальном времени на переднем плане

Когда приложение активно, пользователь обычно ожидает получить достаточно большой объем информации, например:

  • Находится ли получатель сообщения у своего устройства?
  • Они печатают?
  • Прочитано ли сообщение?

Обычно для поддержки такого обмена данными в реальном времени используется клиент-серверный протокол, например WebSockets. WebSockets обеспечивают постоянную дуплексную связь между приложением и сервером. Библиотека OKHTTP включает реализацию протокола WebSocket, которую можно использовать в клиенте Android.

Firebase Realtime Database предоставляет готовый серверный и клиентский интерфейс, который может обрабатывать такой обмен данными от вашего имени. Для связи между клиентом и сервером в реальном времени используются веб-сокеты.

Обмен сообщениями в реальном времени в фоновом режиме

Когда приложение не находится на переднем плане, важно избегать действий, которые отрицательно влияют на работоспособность системы и время работы от батареи. Поскольку надежная доставка уведомлений о сообщениях по-прежнему важна, мы рекомендуем использовать Firebase Cloud Messaging (FCM).

FCM – это кросс-платформенное решение для обмена сообщениями, которое позволяет эффективно отправлять уведомления и сообщения с данными на устройства Android и других операционных систем. На устройствах с сервисами Google используется транспортный уровень Android (ATL), поэтому ваше приложение может получать уведомления об изменениях, даже если оно не запущено. Своевременность доставки сообщений зависит от состояния устройства, приоритета сообщения и того, действуют ли для приложения ограничения, связанные со спящим режимом или App Standby.

Повысьте надежность доставки писем

Чтобы сделать доставку сообщений ещё более надежной, воспользуйтесь следующими стратегиями: