保持Service Worker推送订阅同步的问题

3

我了解到推送订阅可能会在浏览器和推送服务之间失去同步。

我看到了两种补救措施,都似乎非标准:

  1. ServiceWorkerGlobalScope.onpushsubscriptionchange
  2. GCM发送响应,在这里提到这里详细说明
    • 可以理解为非标准

我认为任何应用程序都应该处理这两个可能导致订阅不同步的情况(以及所有情况)。

问题:

  1. 一般来说,一个应用程序总是只有这两个区域可以意识到订阅不同步的情况吗?(1.服务工作者事件2.推送服务响应)看起来很合理,寻求确认
  2. ServiceWorkerGlobalScope.onpushsubscriptionchange事件(或某个等效事件)是否会进入权威标准
  3. 如果没有服务工作者事件标准,为什么不只是保留预期的订阅端点(在客户端状态中),并在每次查询PushManager的订阅时检查它是否不同步(与预期不同)?
1个回答

5
pushsubscriptionchange事件是Push API规范的一部分,文档详见Push API specification。这应该被视为权威参考,并且它提到onpushsubscriptionchange被作为ServiceWorkerGlobalScope的一部分公开

截至目前为止,我不知道在所有支持Push API的浏览器中是否都会触发pushsubscriptionchange事件,但我相信它是解决所描述用例的(最终)解决方案的基本思路。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接