我正在使用此示例代码来学习Web Push
https://github.com/Minishlink/web-push-php-example
我正在开发一个托管并完全在内部使用的Web应用程序。该应用程序应该能够向用户发送Web推送通知
安全问题禁止让应用程序向互联网发送任何信息
基础设施大致如下:
托管应用程序的服务器驻留在DMZ中。内部有两个子网I和N.我的客户可以访问互联网,N的客户没有。从两个子网中,客户端都可以访问应用服务器。
现在,当我从子网I中的客户端(Firefox)访问应用程序时,示例代码工作正常。但是,使用来自子网N的客户端会在控制台中以此错误结束:
无法订阅推送通知
DOMException代码20,消息“检索推送订阅时出错”
服务人员已经注册 Firefox中的代码执行似乎在app.js中函数 push_subscribe()的这一行中止:
.then(subscription => {
在Chrome中,我甚至找不到任何错误输出,但代码执行会在同一行中止。
什么可能导致此错误?我不确定“没有互联网子网”是什么原因,因为据我所知,函数 push_subscribe()在中止之前不会触发任何连接尝试。至少我在Firefox的调试工具的网络选项卡中看不到这样的提示。