使用Angular2的服务工作者推送通知

Dom*_*ino 6 push-notification node.js service-worker progressive-web-apps angular

我正在尝试将通过服务工作者提供用户推送通知的一般工作流程拼凑在一起.

我已经关注了这个 Google Developers服务工作者推送通知教程,我正在考虑如何在基于用户的小型Web应用程序中实现此类实验.

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

  • 客户访问应用
  • 服务工作者产生推送通知端点
  • 客户端将端点发送到服务器
  • 服务器将端点与为其生成端点的当前用户相关联
  • 每次你的应用程序会说某些通知值得发生时,服务器会抓取与用户关联的推送通知端点,并点击它向任何用户设备发送推送通知(可能在Chrome 50+中有数据负载)等)

基本上我只想确认我对这项技术的一般实施思路是否准确,否则如果我遗漏了某些内容就会得到反馈.

Mat*_*unt 8

你几乎是爆炸性的,有一些细节不太正确(但这主要是措辞,可能是为了个人品味).

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

在Chrome 50+中支持有效载荷并且在编写有效载荷时支持Firefox,但在3个不同版本的Firefox中有3个不同版本的加密用于有效载荷,所以我等待有效载荷支持故事到在使用它/依赖它之前要先熨平一下.