所以我终于为我的网站实现了一个成功的推送通知然而,当我按下通知并假设接收者的电脑关闭或处于睡眠模式时gcm返回成功,但通知丢失,它永远不会为该用户弹出。。。另一方面,我注意到facebook似乎在做一些事情来帮助它克服这个问题。。你一打开chrome就会看到facebookchrome通知,这是重新启动后的第一件事。。。有人知道fb是如何解决这个问题的吗??
如果您使用标准的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/.