网络推送通知不显示电脑是不是关闭或睡眠

Posted

技术标签:

【中文标题】网络推送通知不显示电脑是不是关闭或睡眠【英文标题】:web push notification doesn't show if pc is off or sleeping网络推送通知不显示电脑是否关闭或睡眠 【发布时间】:2016-01-12 12:36:17 【问题描述】:

所以我终于为我的网站实现了成功的推送通知 但是,当我推送通知并假设接收者的电脑已关闭或处于睡眠模式时 gcm 返回成功,但通知丢失了,它永远不会为该用户弹出...而另一方面,我注意到 facebook 似乎正在做一些事情来帮助它解决这个问题.. 你会尽快看到一个 facebook chrome 通知重新启动后,您首先打开 chrome ... 有没有人知道 fb 是如何解决这个问题的??

【问题讨论】:

我们能看到你用来向 GCM 发送推送消息的 json 的 sn-p 吗? 我以前不发送任何标志。我发送的只是...... reg_ids 标志.. 就是这样......我尝试在空闲标志时发送延迟,但这也没有奏效......我会发布 json ,但马可的回答似乎是正确的..跨度> 【参考方案1】:

如果您使用标准的 Web 推送服务(例如在 Firefox 中),您需要定义一个名为“TTL”的标头。 来自标准(https://datatracker.ietf.org/doc/html/draft-ietf-webpush-protocol-02):

应用服务器可以使用 TTL 头域来限制时间 推送服务保留推送消息。 TTL 标头 字段包含一个以秒为单位的值,该值描述了推送多长时间 消息由推送服务保留。

如果不设置,默认为0。

GCM 还不支持 Web Push 标准,但它确实有一个 time_to_live 选项,应该可以达到相同的结果:https://developers.google.com/cloud-messaging/concept-options#ttl

编辑:Mozilla 推送服务现在需要 TTL 标头:https://blog.mozilla.org/services/2016/02/20/webpushs-new-requirement-ttl-header/。

【讨论】:

GCM 今天确实支持该协议(以迭代原型的形式),但我们还没有在订阅的端点上宣传它:ietf.org/mail-archive/web/webpush/current/msg00238.html

以上是关于网络推送通知不显示电脑是不是关闭或睡眠的主要内容,如果未能解决你的问题,请参考以下文章

如何在发送推送通知期间关闭计算机时处理 Quartz 触发器

iOS - 推送通知:它是不是总是显示通知

当其他设备前景时,我应该停止发送推送通知吗?

带计时器的推送通知 - iPhone

IBM Worklight:推送通知行为

使用 Swift for iOS 处理来自关闭应用程序的推送通知,如何显示它然后返回关闭或暂停?