6

我试图拼凑通过服务工作者向用户推送通知的一般工作流程。

我已经遵循了这个Google Developers 服务工作者推送通知教程,目前正在考虑如何在一个基于用户的小型网络应用程序中实现这种事情以进行实验。

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

  • 客户访问应用程序
  • 服务工作者产生一个推送通知端点
  • 客户端将端点发送到服务器
  • 服务器将端点与为其生成端点的当前用户相关联
  • 每当您的应用程序认为值得通知的事情发生时,服务器都会抓取与用户关联的推送通知端点,并点击它以向任何用户设备发送推送通知(可能在 Chrome 50+ 中带有数据有效负载) , ETC)

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

4

1 回答 1

8

您非常成功,有些细节不太正确(但这主要是措辞,可能因个人口味而异)。

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

Chrome 50+ 中的有效负载支持,在编写有效负载时,Firefox 支持,但是在 3 个不同版本的 Firefox 中,有效负载使用了 3 个不同版本的加密,所以我会等待有效负载支持故事在使用它/依赖它之前稍微熨一下。

于 2016-04-06T08:44:35.750 回答