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