LINUX.ORG.RU

Javascript Push API и свои сервера

 ,


0

3

Кто-нибудь может в нескольких словах обьяснить довольно странный «стек» Service Worker + Push API + Fetch API для PWA. Прочитал кучу материала. Почему вся эта хрень завязана на гугловые или мозиловские сервера, если оно проходит как стандарт w3c (якобы)?

https://www.w3.org/TR/push-api/

Или потом будет возможносить указать свои сервера для обработки ивентов, когда стандарт выйдет из draft'а? Сейчас нет возможности указать свой сервер и всю коммуникацию вести через него. Или я могу всё же как-то с сервис-воркера установить постоянное ws-соединение?



Последнее исправление: paganmind (всего исправлений: 1)

Почему вся эта хрень завязана на гугловые или мозиловские сервера

ЕМНИП, это фича, чтобы каждый Вася не мог завести свой сервак и спамить на телефоны пользователей push-уведомлениями.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

Зачем тогда такой стандарт нужен? Нет своего браузера - не можешь построить автономное приложение? Есть в браузерах куча разрешений, от камеры и микрофона до нотификаций.

paganmind
() автор топика
Ответ на: комментарий от paganmind

Во-первых, пока не стандарт, но это в общем-то мелочи.

Во-вторых, гугл и мозила не единственные, аналогичное есть у Apple и Amazon, как минимум.

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

Если будет понятнее, проведи аналогию с центрами сертификации. Ты же можешь сделать свой центр сертификации (технически, по крайней мере), но ни один браузер твоим сертификатам доверять не будет. Хочешь, чтобы доверяли, придется договариваться с разработчиками.

hippi90 ★★★★★
()
Последнее исправление: hippi90 (всего исправлений: 1)
Ответ на: комментарий от hippi90

Ты же можешь сделать свой центр сертификации (технически, по крайней мере), но ни один браузер твоим сертификатам доверять не будет.

Не очень удачное сравнение. Я могу сгенерить свои CA и сертификаты, успешно использовать их внутри сети моей компании, добавив его в доверенные. С Push-сервером я такого сделать не могу. В Хроме - вообще ничего, в Firefox - поменять через dom.push.serverURL на свой и тогда у меня накроются push уведомления с других веб-приложений.

Получаем вендор лок-ин c Chrome и его Firebase

paganmind
() автор топика

... Почему вся эта хрень завязана на гугловые или мозиловские сервера, если оно проходит как стандарт w3c (якобы)?

Для того, чтобы не возникали подобные вопросы, нужно понять, как происходит получение push-уведомлений на различных мобильных устройствах (с разными операционными системами) и почему всё задумано именно так.

В общем-то, этот механизм на нижнем уровне «зашивается» в мобильную операционку. Здесь немаловажную роль играют вопросы снижения энергопотребления. Отсюда - завязка на сервера производителя. Так что, не стоит рассчитывать на появление в будущем возможности использования собственных Push-серверов - это противоречит здравому смыслу.

Читаем в стандарте:

4.4 Push service
The term push service refers to a system that allows application servers to send push messages to a webapp. A push service serves the push endpoint or endpoints for the push subscriptions it serves.

There is only one push service per user agent and it cannot be changed from the default value. This limitation is due to a variety of performance-related concerns, including the complexity of running reliable push services and the impact on battery lifetime if there were an unbounded set of push services to which a device could connect.

И в этом нет никакого противоречия с наличием стандарта W3C. W3C предоставляет вам стандартную API-шку для работы в среде веб-обозревателя.

vinvlad ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.