TTL 功能不适用于谷歌浏览器推送通知

Posted

技术标签:

【中文标题】TTL 功能不适用于谷歌浏览器推送通知【英文标题】:TTL feature not working on google chrome push notification 【发布时间】:2016-06-16 07:51:32 【问题描述】:

我正在使用 GCM 向 chrome 发送推送通知,并面临以下一些问题。我正在使用 nodejs 库 web-push 发送推送。

1) 我将 TTL 键设置为 web-push 的 sendNotifiation 值为 0,并在我的浏览器离线时发送通知。一分钟后我打开了浏览器。我仍然收到通知。我尝试通过 curl 请求发送以及设置 TTL 标头,仍然是同样的问题。根据文档,如果 TTL 标头设置为 0 并且最终用户离线,他不应该收到通知。 https://www.npmjs.com/package/web-push

2) 在显示通知时有一个时间戳键选项,它将修改 android chrome 上的时间戳,同时在桌面 chrome 上重新排序。即使设置此字段,android chrome 上的时间也没有改变。 https://developers.google.com/web/updates/2016/03/notifications?hl=en

提前致谢。

【问题讨论】:

【参考方案1】:

这里有几点需要注意:

Chrome 过去一直使用 GCM API 而不是 Web 推送协议来发送推送消息。 web-push 库旨在使用 web 推送协议并回退到 GCM——因为 Chrome 在这里做的是专有/非标准的事情。

GCM API 不使用网络推送协议使用的“TTL”标头,而是 GCM API 使用“time_to_live”选项(如果设置),我不相信网络推送库使用。

GCM 端点最近开始支持 web 推送协议,我将提出 PR 将 web-push 库移至此。

【讨论】:

以上是关于TTL 功能不适用于谷歌浏览器推送通知的主要内容,如果未能解决你的问题,请参考以下文章

“maintainScrollPositionOnPostBack=”true“”不适用于谷歌浏览器

谷歌登录不适用于 iOS 10

图像的最大宽度不适用于 IE 11 的 flexbox,但适用于谷歌浏览器

谷歌浏览器版本。 45.0.2454.85 不适用于 comodo guard32.dll 版本。 8.2.0.4674

具有推送、短信、电子邮件、松弛等功能的云通知服务[关闭]

Apple 推送通知仅适用于开发,不适用于生产