Понятие Push Notification для Windows Phone 7. Часть 2 — Как это работает

Posted on Январь 30, 2011

7


Мой прошлый пост рассказал вам о том, зачем необходимы Push Notifications(PN).

Мы поняли, зачем это необходимо, теперь поговорим о том, КАК это работает.

В работе PN участвуют 3 игрока:

  • Облачный сервис или веб приложение, которое общается с вашим Windows Phone 7 приложением. Для примера представьте Сайт ВКонтакте и приложения для работы с ним.
  • Собственно устройство, но не ваше приложение, потому что если приложение запущено, то нет необходимости в PN. Но как только приложение будет выключено, PN становятся очень ценными, так как Microsoft Push Notification клиент — это сервис, который запущен на устройстве и который обеспечивает протокол клиент-сервер.
  • Ну и Microsoft Push Notification(MPN) сервис. Он отправляет сообщения в форме PN на Windows Phone устройство от имени вашего облачного сервиса. Сервис MPN разработан что бы предоставит облачным сервисам выделенный и устойчивый канал связи для того что бы общаться с телефоном.

Важно: Майкрософт не гарантирует бесперебойность доставки сообщений и потому очень не рекомендует отправлять с помощью PN какие-либо данные, связанные со здоровьем или жизнью человека.

Когда ваш сервис хочет отправить сообщение Windows Phone приложению, в то время как приложение не запущено, он должен использовать MPN, которая является сервисом Windows Azure. Сервис MPN отправит сообщение(PN) от имени облачного сервиса.

Но прежде чем облачный сервис сможет отправлять сообщения на Windows Phone устройства, ваше приложение должно отправить какой-то идентификатор, который будет использован облачным сервисом для того что бы отправлять сообщения сервису MPN. Windows Phone приложение открывает канал к MPN сервису(1). Когда приложение делает это, оно дает понять сервису, что сюда следует отправлять сообщения. Когда создается канал, создается end point на MPN серверах, что бы облачное приложение могло постить туда сообщения, и так ваши сообщения через MPN попадут на устройство через тот канал, который был создан. В ответ на открытие канала, MPN сервер возвращает приложению URI. Этот URI представляет канал, который следует использовать вашему облачному сервису и содержит всю информацию, связанную с текущей подпиской. Этот URI — это адрес, по которому ваше облачное приложение будет делать HTTP POST что бы отправить PN сообщение на устройство. Ваше приложение обязано отправит эту ссылку вашему сервису(2).

Что бы отправить сообщение на Windows Phone устройство, облачный сервис должен сделать HTTP POST(3) в XML формате(который соответствует MPN протоколу) по URI, которую он(сервис) получил от приложения(это случилось в шаге 2). Делая это, облачный сервис отправляет запрос на уведомления MPN сервису, который, в свою очередь, отправляет сообщения в форме PN на WP устройство(4).
Как только WP устройство получает PN с помощью Push клиента, он отправляет сообщение на Shell, который и определит в какой форме необходимо отобразить сообщение (о формах сообщений можно прочесть здесь).
Собственно и все. Немного позже мы поговорим о том, как использовать PN в своем приложении и о том, как можно облегчить работу с PN.

Реклама