Проект Mozilla представил технологию отправляемых с сервера уведомлений для браузера
Технология Push Notifications рассчитана на непосредственный вывод уведомлений пользователю (вывод уведомления осуществляет браузер) и является чем-то средним между email и системами мгновенного обмена сообщениями. В качестве областей возможного применения называется отправка webmail-системами уведомлений о получении новых email, генерация сообщений о наступлении каких-то событий, например, информации о проблемах от системы мониторинга или достижения курса валюты какого-то уровня.
Чтобы сообщения могли быть отправлены пользователю, сайт запрашивает подтверждение операции, при получении которого генерируется специальный URL-идентификатор доставки. Процесс доставки контролируется на стороне браузера, что защищает систему от возможных рассылок спама, - браузер забирает только сообщения из каналов доставки, с идентификаторами на которые явно подписался пользователь. Отменив подписку, пользователь больше не увидит сообщений, даже если сервер продолжит их отправлять.
Получив URL-идентификатор, серверное ПО сайта при необходимости отправки сообщения определённому пользователю, формирует по данному URL обычный POST-запрос с пакетом данных в json-формате (передаётся заголовок сообщения, тело сообщения, ссылка для перехода и другие информационные данные). URL-идентификаторы ссылаются на специальный промежуточный сервер нотификации (Notification Service), который занимается приёмом запросов с серверов и организацией доставки сообщений клиентам. Периодически браузер проверяет наличие новых сообщений на серверах нотификации и забирает те, на которые имеется активная подписка. При этом доставка будет осуществлена даже если сообщение отправлено в момент неактивности пользователя, например, когда браузер не запущен. Способ доставки с сервера нотификации в браузер планируется реализовать с использованием методов, уже применяемых при работе функции синхронизации настроек (Firefox Sync). В качестве сервера нотификации могут выступать как централизованные службы, так и поднятое на своих мощностях специальное ПО.
API новой системы нотификации базируется на объекте navigator.notification. На начальном этапе подписки на уведомления, JavaScript-код сайта, который желает отправлять уведомления, вызывает метод notification.requestRemotePermission(), что приводит к выводу специального диалогового окна с вопросом о подтверждении подписки. Если подписка подтверждена на выходе формируется объект для дальнейшего слежения за событиями, связанными с оформлением подписки. Одновременно формируется запрос к серверу нотификации, в результате которого он генерирует уникальный URL-идентификатор, привязывающий сайт к пользователю. Затем данный URL-идентификатор возвращается в скрипт сайта через callback-вызов request.onsuccess, после чего передаётся на сервер, желающий отправлять сообщения.
var notification = (navigator.notification || navigator.mozNotification || navigator.webkitNotification); if (notification) { // Спрашивает подтверждения получения уведомлений var request = notification.requestRemotePermission(); request.onsuccess = function() { var url = request.result; console.log('New push URL: ' + url); // Сохраняет URL-идентификатор на своём сервере jQuery.post('/push-urls/', {url: url}); }; }
Источник: http://www.opennet.ru/opennews/art.shtml?num=32992
|
0 | Tweet | Нравится |
|