使用 Angular2 的 Service Worker 推送通知

Service Worker Push Notifications with Angular2

我正在尝试拼凑通过 service worker 向用户推送通知的一般工作流程。

我已关注 this Google 开发人员服务工作者推送通知教程,目前正在考虑如何在基于用户的小型 Web 应用程序中实现此类内容以进行实验。

在我看来,支持推送通知的网络应用程序的一般工作流程如下:

基本上我只是想确认我对这项技术的一般实施想法是准确的,如果我遗漏了什么,请得到反馈。

你说得很不错,有些细节不太对(但这主要是措辞上的,可以根据个人口味来做)。

  • 客户访问应用程序
  • 注册一个要用于推送消息的 Service Worker
  • 使用 service worker 注册订阅用户推送消息,此时用户代理将配置端点 + 用于加密有效负载的附加值(如果用户代理支持)。
  • 客户端将终结点发送到服务器
  • 服务器存储端点和数据以备后用(如果 Web 应用程序有用户帐户,服务器可以将端点与当前用户相关联)。
  • 每当服务器希望向用户发送通知时,它会获取适当的端点并调用它们来唤醒服务工作者,然后服务工作者可以显示通知。

Payload 支持即将到来 Chrome 50+ 并且在撰写本文时 Firefox 支持有效负载,但是在 3 个不同版本的 Firefox 中有 3 种不同版本的加密用于有效负载,所以我在使用它/依赖它之前,会等待负载支持的故事被解决。