与服务人员的webpush通知

时间:2018-11-12 20:56:12

标签: javascript google-chrome service-worker

我对网络推送通知和服务人员有一些疑问

网站授予的权限持续多长时间?

包含webpush终结点和密钥更改的订阅对象吗?

如果它改变了,我怎么知道它改变了?

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

非常感谢

1 个答案:

答案 0 :(得分:1)

这是您问题的答案!

  
      
  1. 网站授予的权限持续多长时间?
  2.   

始终检查使用Notifications API的权限。务必检查是否已授予许可,因为状态可能会更改。用户可以手动禁用权限,因此每次都进行检查以避免破坏代码

  
      
  1. 包含Web推送端点和密钥更改的订阅对象吗?
  2.   
  3. 如果它改变了,我怎么知道它改变了?
  4.   

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

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

端点和公钥将保持不变,因此不需要更改。

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

要向用户发送推送消息时,首先需要的是推送服务。您是在告知推播服务(通过API调用)要发送哪些数据,向谁发送消息以及有关如何发送消息的所有条件。通常,此API调用是从您的服务器完成的。

参考:

Google Developers官方文档: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

希望这会有所帮助!