网络推送。获取离线时发送的网络推送?
Posted
技术标签:
【中文标题】网络推送。获取离线时发送的网络推送?【英文标题】:Web Push. fetching web pushes sent while offline? 【发布时间】:2018-10-11 06:58:31 【问题描述】:我正在编写一个 vue.js 应用程序,使用带有 Firebase Cloud Messaging 的网络推送,我想知道是否可以向用户发送网络推送,以防用户离线,以某种方式存储它以供以后显示用户再次打开应用程序。是否有解决此问题的原则性方法,即在最终用户离线时管理网络推送?
我问这个问题的原因是,到目前为止,我使用离线客户端(即桌面浏览器)的令牌提交给 FCM 服务器的所有网络推送通知都被遗忘了。可以肯定的是,当客户重新上线时,FCM 并没有尝试再次推送通知。
出于这个原因,我正在考虑编写一个自制的调度程序来管理离线客户端的网络推送,但我需要确保我的努力是值得的。
更新:我现在可以使用适当的time_to_live
值显示重新联机后发送到脱机客户端的通知。但是,仅显示最新通知。有什么具体原因吗?
【问题讨论】:
【参考方案1】:FCM 的默认行为与此完全相同。来自docs:
如果设备未连接到 FCM,则会存储消息,直到建立连接(再次遵守折叠密钥规则)。建立连接后,FCM 会将所有待处理消息传递给设备。
【讨论】:
那不是我能够目睹的行为。我使用我的 Web 浏览器 X 通过我正在开发的 Web 应用程序命令 FCM 服务器向我的 Web 浏览器 Y 发送推送通知,其中 Y 的服务工作者和令牌已正确设置和更新,但 Web 浏览器已关闭。但是,当我打开它时,没有消息通过。但是,当打开 Web 浏览器 Y 时,会通过某个前台或后台侦听器接收所有通知。是否可以使用更严格的程序来确保我的浏览器在再次打开我的网络应用程序时收到通知? 您能否确保您引用的段落确实适用于 WEB 推送,而不是 ios 和 android 推送?如果是这样,您可以相应地更正您的回复吗? 该段落放置在文档的一般位置——通常涵盖 FCM 行为本身,无论客户端平台如何。为您的帖子提供完整的答案只是过于宽泛。我建议编辑您的帖子,以提供您已经尝试过的示例。 谢谢,我在上面编辑了我的帖子(显然需要time_to_live
参数才能获得我想要的行为。)。但请参阅上面的另一个问题——可能是最后一个问题......以上是关于网络推送。获取离线时发送的网络推送?的主要内容,如果未能解决你的问题,请参考以下文章