Сообщения по темам

FCM позволяет отправлять сообщения на несколько устройств, которые согласились получать сообщения по определенной теме. Вы создаете сообщения по темам, а FCM направляет и доставляет их на нужные устройства.

Основные моменты, касающиеся обмена сообщениями по темам:

  • Лучше всего подходит для общедоступной информации, например оповещений о погоде.
  • Сообщения темы оптимизированы для пропускной способности, а не задержки. Для быстрой и безопасной доставки на отдельные устройства или небольшим группам направляйте сообщения на токены регистрации, а не на темы.

Квоты и ограничения

Тематические сообщения поддерживают неограниченное количество подписок для каждой темы. Однако в FCM действуют ограничения на:

  • Один экземпляр приложения может быть подписан не более чем на 2000 тем.
  • Если вы используете пакетную подписку для подписки экземпляров приложения, каждый запрос ограничен 1000 экземплярами приложения.

Ограничение подписки

Добавлять и удалять подписки на темы можно с частотой не более 3000 запросов в секунду на проект.

Частота новых подписок ограничена для каждого проекта. Если вы отправите слишком много запросов на подписку за короткий период времени, серверы FCM ответят ошибкой 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED"). Повторите попытку с экспоненциальной выдержкой.

Ограничение веерной рассылки

Веерная рассылка – это процесс отправки сообщения на несколько устройств, например при таргетинге на темы и группы или при использовании Компоновщика уведомлений для таргетинга на целевые аудитории или сегменты пользователей.

Рассылка сообщений происходит не мгновенно, поэтому иногда одновременно выполняется несколько рассылок. Мы ограничиваем количество одновременных разветвлений сообщений до 1000 на проект. После этого мы можем отклонить дополнительные запросы на разветвление или отложить их до завершения некоторых из уже выполняющихся.

Фактическая достижимая скорость разветвления зависит от количества проектов, запрашивающих разветвление одновременно. Коэффициент разветвления 10 000 запросов/сек для отдельного проекта не является редкостью, но это число не гарантируется и является результатом общей нагрузки на систему. Важно отметить, что доступная емкость разветвления делится между проектами, а не между запросами на разветвление. Таким образом, если в вашем проекте выполняются две операции развертывания, то для каждой из них будет доступна только половина от общей скорости развертывания. Чтобы максимально увеличить скорость развертывания, рекомендуется выполнять только одно развертывание за раз.

Дальнейшие действия