我们的网络推送通知工作正常,但最近我们注意到端点将在不到一天的时间内过期,当我们最初尝试发送通知时,一切进展顺利,但后来它停止发送,当我们检查时,我们发现它是给出状态码 410
消息是
410 推送订阅已取消订阅或已过期
我们搜索了谷歌,发现了几个链接,上面说我们需要在每次链接过期时通过发送旧的和新的令牌来重新订阅,并将其保存在数据库中,但问题是我们有大量的订阅者,对每个订阅者都这样做是站不住脚的。最重要的是,人们不会一次又一次地打开网站,如果只有当客户再次打开网站时才能实现重新订阅,那么许多端点将会消失,因为除了少数非常受欢迎的网站之外,人们很少一次又一次地返回网站。
那么有什么方法可以通过服务器端的 php 交换旧端点来更新新端点,而不依赖于客户端呢?
他们已经订阅了我们的端点,但已过期。
或者我们是否可以首先延长生成的端点的到期时间?
您必须在 Service Worker 中监听pushsubscriptionchange,否则一段时间后您将失去所有订阅者:订阅有一个持续时间,然后会自动替换。
您可以在这里查看定义的真实示例pushsubscriptionchange:
https://pushpad.xyz/service-worker.js
然后在服务器上,您需要用新端点替换旧端点。
| 归档时间: |
|
| 查看次数: |
4298 次 |
| 最近记录: |