为什么chrome浏览器经常更改端点

时间:2016-08-12 08:39:45

标签: google-chrome push-notification service-worker

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

由于端点不匹配,有时推送通知失败。当我在chrome控制台(调试模式)中看到时,有不同的端点。 为什么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

谢谢。

1 个答案:

答案 0 :(得分:0)

推送通知端点取决于服务工作者。当服务人员取消注册并再次创建时,PushManager.getSubscription()方法实际上将返回null。然后,您需要再次调用subscribe(),这将返回一个新的端点。

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

请注意,这似乎并不影响服务人员的更新。