Вопросы о синхронизации push-подписок Service Worker

Я читал, что push-подписка может не синхронизироваться между браузером и push-сервисом.

Я видел два исправления, оба выглядят нестандартными:

  1. ServiceWorkerGlobalScope.onpushsubscriptionchange
  2. GCM send response, mentioned here, spelled out here
    • understandably non-standard

Я предполагаю, что любое приложение должно обрабатывать обе эти точки, в которых подписка может быть идентифицирована как несинхронизированная (и любая/все).

Вопросы:

  1. В общем, всегда ли есть только две области, в которых приложение может быть уведомлено о ситуации рассинхронизации подписки? (1. событие работника службы 2. ответ службы push) Кажется разумным, требуется подтверждение.
  2. Будет ли событие ServiceWorkerGlobalScope.onpushsubscriptionchange (или что-то подобное) включено в официальный стандарт?
  3. Вместо стандарта событий сервис-воркера, почему бы просто не оставить ожидаемую конечную точку подписки (в состоянии на стороне клиента) и каждый раз, когда вы запрашиваете подписку у PushManager, проверять, не синхронизирована ли она (отличается от ожидаемой)?

person Alex Grant    schedule 04.01.2016    source источник


Ответы (1)


Событие pushsubscriptionchange задокументировано как часть спецификации Push API. Это следует считать авторитетным, и там упоминается, что onpushsubscriptionchange выставлено как часть ServiceWorkerGlobalScope.

Я не знаю, запускается ли событие pushsubscriptionchange во всех браузерах, поддерживающих Push API на момент написания этой статьи, но я считаю, что общая идея заключается в том, что это (возможное) решение для описанного вами варианта использования.

person Jeff Posnick    schedule 06.01.2016