使用 Service Workers 实现 Web 推送通知

9

关于WebPush通知和Service Workers,我有几个问题:

授权许可在网站上持续多久?

包含WebPush端点和密钥的订阅对象是否会变更?

如果发生变化,如何知道它已经更改?

订阅对象是否应随时重新生成?

非常感谢。

1个回答

1

这是你问题的答案!

  1. 一个网站获得的许可证持续多长时间?

始终检查使用通知API的权限。重要的是要不断检查是否已经授予权限,因为状态可能会变化。用户可以手动禁用权限,因此每次都要检查以避免破坏代码。

  1. 包含Web推送端点和密钥的订阅对象是否会更改?
  2. 如果更改了,我怎么知道它已经更改?

您的服务器需要生成一对应用程序服务器密钥-也称为VAPID密钥,这些密钥对于您的服务器是唯一的。它们是公钥和私钥的一对。私钥在您这一端秘密存储,而公钥与客户端交换。这些密钥允许推送服务知道哪个应用程序服务器订阅了用户并确保发送推送消息到特定用户的是同一台服务器。

您只需要为应用程序创建一次私钥/公钥对。一种方法是转到https://web-push-codelab.glitch.me/

终端节点和公钥将保持不变,因此无需更改。
当您想向用户发送推送消息时,首先需要的是推送服务。通过 API 调用,您告诉推送服务要发送哪些数据、向谁发送消息以及有关如何发送消息的任何条件。通常,此 API 调用是从您的服务器执行的。
参考资料:
官方 Google 开发者文档:https://developers.google.com/web/ilt/pwa/introduction-to-push-notifications

https://blog.sessionstack.com/how-javascript-works-the-mechanics-of-web-push-notifications-290176c5c55d

希望这有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接