google-chrome - 为什么 Chrome 浏览器频繁更改端点

标签 google-chrome push-notification service-worker

我正在为我的网站开发 Chrome 推送通知,并在 localhost(本地计算机)环境中进行开发。使用我第一次订阅通知时收到的特定端点发送推送通知成功。我对所有推送消息使用相同的端点。

有时,由于端点不匹配,推送通知失败。当我在 chrome 控制台( Debug模式)中看到有不同的端点。 为什么 Chrome 浏览器要改变端点?在这种情况下,我们如何处理这种情况并更新数据库中的新端点?

示例端点: https://android.googleapis.com/gcm/send/AWERdvfdfdsfdobRH4zlXGuyeuie3543uTBuP6air5dzZfltNa-FKF6K6S-9P5SdfbCbyvn9RdsfsdvU1XwSBwIrekjdK6_i4Cg-5rZAj8UvL1s-Bbr61yvvt_y2Hg9RdsyV

当我下次检查时,上面的端点已更改如下
https://android.googleapis.com/gcm/send/reytryMkQwtY:YTUNMdsjjfhsdf349851VS6McDE7s_GITe_djsgfdkjghcdfdfgdftrkddfdsXiwX1vP_XclmDqrKPOAMJDfsYYXdhMX164694Q&ksdhfksdfhkjfhksdcndsk

谢谢。

最佳答案

推送通知端点依赖于服务工作线程。当取消注册并再次创建 service-worker 时,PushManager.getSubscription() 方法确实会返回 null。然后,您需要再次调用 subscribe(),这将返回一个新端点。

如果您的服务器在取消注册服务工作线程后尝试向第一个端点发送推送通知,您将收到 NotRegistered(对于 Chrome)或 Gone (对于 Firefox)错误。因此,请确保应用加载后立即注册新端点,否则设备可能无法访问。

请注意,这似乎不会影响服务工作人员更新。

关于google-chrome - 为什么 Chrome 浏览器频繁更改端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913575/

相关文章:

javascript - 索引 html 和 Service Worker js 文件可以放在不同的文件夹中吗

javascript - 将 CSS 或 JS 注入(inject) Android 上的 Chrome

javascript - 视频未在 IE 和 Chrome 中显示

android - 未收到来自 GCM 的推送通知 (Android)

node.js - ServiceWorker 和推送通知负载

javascript - Service Worker 缓存未将所有文件存储在数组中

javascript - 浏览器显示未引用函数

html - 移动版 Chrome 中完美对齐的元素之间出现意外情况(间隙?)

php - iPhone 收不到推送通知

swift - 在 Swift 中集成 Sinch 库时出错?