Я использую этот пример кода для изучения Web Push.
https://github.com/Minishlink/web-push-php-example
Я работаю над веб-приложением, которое размещено и используется полностью самостоятельно. Приложение должно иметь возможность отправлять уведомления Web Push пользователям.
Проблемы безопасности запрещают приложению отправлять любую информацию в Интернет.
Инфраструктура примерно такая:
Сервер, на котором размещено приложение, находится в демилитаризованной зоне. В доме есть две подсети I и N. Клиенты из меня имеют доступ к Интернету, а клиенты в N — нет. Из обеих подсетей клиенты могут получить доступ к серверу приложений.
Теперь, когда я получаю доступ к приложению с клиента (Firefox) в подсети, пример кода работает нормально. Но использование клиента из подсети N заканчивается этой ошибкой в консоли:
Невозможно подписаться на push-уведомление
Код DOMException 20, сообщение «Ошибка при получении принудительной подписки»
Сервисный работник был зарегистрирован.
Кажется, что выполнение кода в Firefox прерывается в этой строке функции push_subscribe () в app.js:
.then(subscription => {
В Chrome я даже не могу найти вывод ошибок, но выполнение кода прерывается в одной строке.
Что может вызвать эту ошибку? Я не уверен, как «нет интернет-подсети» может быть причиной из-за моих знаний о функции push_subscribe () не вызывает никаких попыток подключения, пока не прервется. По крайней мере, я не вижу таких подсказок на вкладке сети инструмента отладки Firefox.
Задача ещё не решена.
Других решений пока нет …