我正在为我的网站开发 Chrome 推送通知,并在 localhost(本地计算机)环境中进行开发。使用我第一次订阅通知时收到的特定端点发送推送通知成功。我对所有推送消息使用相同的端点。
有时,由于端点不匹配,推送通知失败。当我在 chrome 控制台( Debug模式)中看到有不同的端点。 为什么 Chrome 浏览器要改变端点?在这种情况下,我们如何处理这种情况并更新数据库中的新端点?
谢谢。
最佳答案
推送通知端点依赖于服务工作线程。当取消注册并再次创建 service-worker 时,PushManager.getSubscription()
方法确实会返回 null
。然后,您需要再次调用 subscribe()
,这将返回一个新端点。
如果您的服务器在取消注册服务工作线程后尝试向第一个端点发送推送通知,您将收到 NotRegistered
(对于 Chrome)或 Gone
(对于 Firefox)错误。因此,请确保应用加载后立即注册新端点,否则设备可能无法访问。
请注意,这似乎不会影响服务工作人员更新。
关于google-chrome - 为什么 Chrome 浏览器频繁更改端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913575/