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

Questions about keeping Service Worker Push Subscriptions In Sync

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

我看过两个补救措施,看起来都不标准:

  1. ServiceWorkerGlobalScope.onpushsubscriptionchange
  2. GCM 发送响应,mentioned here, spelled out here
    • 可以理解的不标准

我认为任何应用程序都应该处理可以将订阅识别为不同步的这两个点(和 any/all)。

问题:

  1. 一般来说,是否总是只有两个区域可以让应用程序了解订阅不同步的情况? (1. service worker 事件 2. push service response) 好像有道理,求确认.
  2. ServiceWorkerGlobalScope.onpushsubscriptionchange 事件(或类似事件)是否会进入 authoritative standard
  3. 代替服务工作者事件标准,为什么不只保留预期的订阅端点(在客户端状态),并在任何时候查询 PushManager 的订阅,检查它是否不同步(与预期不同)?

pushsubscriptionchange 事件被记录为 Push API specification. That should be considered authoritative, and it mentions there onpushsubscriptionchange is exposed 的一部分作为 ServiceWorkerGlobalScope 的一部分。

我不知道在撰写本文时是否所有支持 Push API 的浏览器都触发了 pushsubscriptionchange 事件,但我相信一般的想法是它是(最终的)您描述的用例的解决方案。