2016-12-07 4 views
1

У меня есть два вопроса, связанные с Android системы Push Notification:Принципы работы нажима NotificationSystem Android

  1. Каков принцип работы этой системы? Клиент отправляет свой собственный IP-адрес в Службу Google Cloud Messaging (например, когда он переключает свой собственный IP-адрес)? Так это своего рода объединение ?.
  2. Как вы узнали, что Служба облачных сообщений Google «просматривает» содержимое сообщения уведомления (созданного на сервере и отправленного клиенту)?
+0

«Откуда вы знаете, что Служба облачных сообщений Google» просматривает «содержимое сообщения уведомления», пожалуйста, уточните более –

+0

Я бы послал данные в уведомлении: поэтому, когда клиент видит уведомление, он может принимать данные, без контакта с сервером. Является ли это возможным? Я уверен, что GCM Service не может «заглядывать» в это сообщение и нюхает данные? – PenguinEngineer

+0

Конечно, это возможно. Когда клиент получает уведомление, он может легко считывать данные внутри него и может предпринимать необходимые действия без связи с сервером. В любом случае это идея push-уведомления. –

ответ

1

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

Это соединение поддерживается как можно больше и не создается для определенных сообщений.

Идентификатор регистрации идентифицирует устройство и приложение и позволяет GCM направлять сообщение на устройство, если оно подключено. Если он не подключен, GCM необходимо подождать, пока устройство не восстановится.

+0

ОК, так что клиент устанавливает соединение и поддерживает его. Когда соединение опускается, снова клиент связывается с сервисом GCM и устанавливает новое соединение (это правда?). Существует глобальное соединение, используемое всеми приложениями клиента, или каждое приложение поддерживает соединение? Какая связь это? TCP-соединение? – PenguinEngineer

+0

Это правильно, и соединение доступно для всех приложений, что позволяет сэкономить время работы от батареи и использовать данные. –

1

Что такое принцип работы этой системы? Клиент отправляет свой собственный IP-адрес Службе облачных сообщений Google (например, когда он переключает на собственный IP-адрес)? Так что это своего рода объединение?

Я добавляю изображение здесь, описывающее работу GCM.

How GCM works

Это шаг за шагом презентации. Вам нужно получить идентификатор регистрации push сначала, когда ваше приложение запускается. Поэтому, если у вас есть серверный сервер для отправки некоторого push-уведомления в ваше приложение, вам необходимо передать идентификатор регистрации на ваш серверный сервер. Поэтому, когда вам нужно отправить push-уведомление, ваш серверный сервер отправит push непосредственно в GCM с целевым идентификатором регистрации. GCM удаляет уведомление на своем устройстве, когда ваше устройство подключается к сети.

Так что это не всякий пул. Единственное, что нужно знать GCM, это идентификатор регистрации вашего устройства, когда он подключен к сети, и пытается связаться с GCM. Как только ваше устройство зарегистрировано, GCM отправляет push-уведомление с использованием этого идентификатора регистрации.

Как вы знаете, что Google Cloud Service сообщений «смотрит на» в содержания сообщения уведомления (созданном на сервере и посланного к клиенту)?

Этот вопрос мне не очень понятен. Насколько я понял, вы хотели знать, как GCM понимает, кому необходимо отправить push-уведомление, когда уведомление приходит с вашего сервера. Если это ваш вопрос, я думаю, что уже ответил в предыдущем разделе моего ответа.

GCM не должен заглядывать в ваш контент для уведомления о назначении push-уведомления. Как я уже говорил ранее, когда ваше приложение запускается, оно запрашивает идентификатор регистрации push из GCM, и когда он получает идентификатор регистрации, вам может потребоваться передать идентификатор регистрации, вызвав службу вашего бэкэнд-сервера. Затем сервер знает, кому он может отправить уведомление.

Итак, когда его время для отправки уведомления в клиентское приложение, серверный сервер отправляет уведомление в GCM с идентификатором регистрации, который вы отправили на ваш серверный сервер ранее. Затем GCM обрабатывает отправку push-уведомления клиенту, когда приложение подключается к сети.

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

+0

Хорошо, это понятно, но мой вопрос: как возможно, что GCM Service связывается с клиентом? Он должен знать его адрес, и этот адрес может измениться ... – PenguinEngineer

+0

Или, может быть, во время регистрации пользователь отправляет в GCM Service номер SIM-карты? – PenguinEngineer

+0

Номер SIM не учитывается здесь. GCM знает только регистрационный идентификатор. Когда приложение приходит в сеть, он сам отправляет идентификатор регистрации. Этот идентификатор регистрации часто не изменяется вместе с изменениями сетевого адреса. –

 Смежные вопросы

  • Нет связанных вопросов^_^