Как Firebase Push Notification отправляется на устройство - PullRequest
2 голосов
/ 20 апреля 2019

Я пытаюсь выяснить, как Firebase подключается к конкретным устройствам и отправляет на него сообщение. Теперь я знаю, как использовать Firebase и отправлять уведомления зарегистрированным устройствам с моего внутреннего сервера, но я не знаю, как это работает внутри. Использует ли сервер Firebase постоянное соединение между устройством и сервером? Какую технологию он использует?

На данный момент меня больше всего интересуют устройства Android и то, как firebase активирует устройство даже с ограничениями фоновых задач.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2019

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

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

1 голос
/ 20 апреля 2019

Я пытался объяснить, как работает GCM в мой ответ здесь .Внутренний принцип работы Firebase похож на мой взгляд.

Когда вы устанавливаете приложение, в котором установлен Firebase SDK, оно получает идентификатор принудительной регистрации с сервера Google.Обычно вы также сохраняете идентификатор принудительной регистрации на своем сервере.Следовательно, когда возникает ситуация с отправкой push-уведомления, ваш сервер использует этот идентификатор push-регистрации для генерации запроса на сервер Firebase для отправки push-уведомления на ваше устройство.

Теперь давайте подумаем и о приемной части (т.е. о вашем устройстве).На мой взгляд, в более новых версиях Android позволяет JobScheduler неоднократно проверять push-сообщения с сервера Firebase, и, если таковые имеются, устройство уведомляет соответствующее приложение, а затем приложение генерирует push-уведомление.

Надеюсь, это поможет!

...