Локальные и push-уведомления для прогрессивных веб-приложений (PWA)

Предполагая, что вы создаете корпоративное веб-приложение, которое работает в корпоративной (локальной) среде, не имеющей подключения к Интернету.

Можно ли в этом случае использовать push-уведомления прогрессивных веб-приложений? Может быть, какое-то серверное решение, которое может отправлять уведомления клиентам?

Я имею в виду, что теперь, если вы попытаетесь это сделать, вы получите конечную точку вроде "https://fcm.googleapis.com/fcm/send/bla-bla-bla "(например, для Chrome, для Firefox все будет иначе). Что, если сервисы Google / Mozilla / любые другие службы НЕ доступны для пользователей (вы можете себе представить, они работают в изолированной корпоративной локальной сети)?


person Nikolay    schedule 04.08.2018    source источник


Ответы (1)


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

Тем не менее, это не обязательно для решения для интрасети. Push api - это просто протокол для передачи данных, API уведомлений полностью отдельный. Вы можете реализовать центральный сервер websocket и достаточно легко создавать уведомления браузера в ответ на сообщения websocket с помощью нескольких строк javascript, и конечный результат будет в основном таким же.

person miknik    schedule 05.08.2018
comment
Будет ли работать в сервис-воркере (когда пользователь даже не открывал мой сайт?) - person Nikolay; 05.08.2018
comment
Нет, сервис-воркеры не могут иметь постоянных подключений. Лучше всего, вероятно, разработать внутренние настольные приложения или расширения браузера, поддерживающие постоянные соединения. - person abraham; 07.08.2018
comment
Насколько я понимаю, стандартные push-уведомления сервис-воркера будут работать даже в том случае, если пользователь даже не открывал веб-сайт, на котором установлен сервис-воркер, верно? w3c.github.io/push-api/#introduction ... Я был интересно, можно ли использовать эту функцию для сценария изолированной локальной сети. - person Nikolay; 08.08.2018
comment
Push api может вызывать сервис-воркера для отображения уведомления, но на самом деле это было бы невозможно, если у вас нет полного контроля над локальной сетью и вы не готовы проксировать все push-серверы браузера в ваших DNS и настроить свой собственный push api, совместимый сервер. Предполагается, что сервис-воркеры будут иметь ограниченный срок жизни: после того, как они выполнили свою задачу, они закрываются, вы не можете оставить их в живых, чтобы опросить сервер или что-то еще. Возможно, вы сможете что-то сделать с помощью API фоновой синхронизации и заставить сервис-воркера выполнять регулярную синхронизацию. Я думаю, есть лучшие способы делать то, что вы пытаетесь сделать - person miknik; 08.08.2018