Web Push System - 如何订阅用户?

Web Push System - how to subscribe the users?

我正在做一个简单的网络推送系统。

每个用户注册,获得一个唯一的vapid key,将其放在他的web中,他的web用户使用vapid key订阅推送通知,然后用户可以通过推送系统web界面发送推送通知。

我需要一个解决方案来在用户网站中安装服务器密钥。

我是否应该制作某种 plugin/javascript sdk,例如,用户将从 SDK 添加脚本,然后使用系统中他唯一的 vapid 密钥初始化脚本?像这样:

pushSystem.init({ id: vapid_key })

然后脚本会用密钥订阅用户并将订阅发送到服务器,我会在 Web 界面中提取此私钥的订阅并向所有用户发送推送。

我该怎么办?我做了很多研究,并没有真正找到任何关于这个的东西。

在 Pushpad,我们这样做:

  1. 我们提供了一个 Javascript SDK,它作为普通脚本包含在网站中
  2. 网站调用pushpad('init', PROJECT_ID)
  3. VAPID public 密钥使用 PROJECT_ID 从服务动态下载并存储在变量
  4. 网站调用 pushpad('subscribe'),后者使用 VAPID public 键调用 pushManage.subscribe()