FCM Обмен сообщениями по темам позволяет отправлять сообщения на несколько устройств, подписанных на определенную тему. Вы пишете сообщения для тем по мере необходимости, а FCM надежно доставляет их на нужные устройства.
Важная информация об отправке сообщений по темам:
- Лучше всего подходит для общедоступной информации, например оповещений о погоде.
- Сообщения, отправленные в тему, оптимизированы для пропускной способности, а не для задержки. Для быстрой и безопасной доставки сообщений на отдельные устройства или небольшие группы устройств направляйте сообщения на токены регистрации, а не на темы.
Квоты и ограничения
В сообщениях по темам поддерживается неограниченное количество подписок на каждую тему. Однако FCM устанавливает ограничения в следующих областях:
- Один экземпляр приложения может быть подписан не более чем на 2000 тем.
- Если вы используете пакетную подписку для подписки на экземпляры приложений, каждый запрос может содержать не более 1000 экземпляров.
Ограничение подписок
Частота добавления или удаления подписок на темы ограничена 3000 запросов в секунду на проект.
Частота новых подписок ограничена для каждого проекта. Если вы отправите слишком много запросов на подписку за короткий период времени, серверы FCM ответят кодом 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED"). Выполняет повторные вызовы с экспоненциальной выдержкой.
Ограничение веерной рассылки
Рассылка сообщений – это процесс отправки сообщения на несколько устройств, например при таргетинге на темы и группы или при использовании конструктора уведомлений для таргетинга на аудитории или сегменты пользователей.
Распространение сообщений происходит не мгновенно, поэтому иногда одновременно выполняется несколько таких операций. Мы ограничили количество одновременных рассылок сообщений на проект до 1000. После этого мы можем отклонить дополнительные запросы на разветвление или отложить их до завершения текущих разветвлений.
Фактическая скорость разветвления зависит от количества проектов, которые одновременно запрашивают разветвление. Скорость разветвления в 10 000 запросов в секунду для отдельного проекта не является чем-то необычным, но это число не гарантируется и зависит от общей нагрузки на систему. Обратите внимание, что доступная емкость распределяется между проектами, а не между запросами на разветвление. Если в проекте выполняется два распространения, то каждое из них будет использовать только половину доступной скорости. Чтобы максимально увеличить скорость разветвления, рекомендуется выполнять только одно активное разветвление за раз.
Дальнейшие действия
- Узнайте, как управлять подписками на темы с помощью Admin SDK или клиентского приложения.
- Узнайте, как отправлять сообщения в темы с помощью Admin SDK или FCM v1 HTTP API.