首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用Firebase Cloud Messaging和Django-Push-Notifications时,如何使用TTL来防止消息积压?

在使用Firebase Cloud Messaging和Django-Push-Notifications时,如何使用TTL来防止消息积压?
EN

Stack Overflow用户
提问于 2019-10-03 13:14:43
回答 1查看 563关注 0票数 0

我正在使用django-push-notifications在Django使用Firebase Cloud Messaging,通过桌面通知向我们的用户发送推送通知。

浏览器完全关闭后(例如计算机关闭时),我们的用户会收到一份积压的所有通知,这些通知都是他们下次启动时发送的。

虽然在某些情况下,用户可能希望接收全部积压的消息,但这不是其中之一。

似乎答案是按照this section of the FCM documentation设置TTL=0,但我的尝试没有得到所需的行为。

在这种情况下,请帮助我更好地理解TTL。如果TTL是正确的方法,那么使用django-push-notifications在send_message()中格式化TTL的正确方式是什么,这样如果不能立即发送,消息就不会累积?

这是我尝试过的:

代码语言:javascript
复制
devices.send_message(
    body,
    TTL=0,
    time_to_live=0,
    link='blah',
    extra={'title': 'blah blah', 'icon': '/foo/bar.png'}
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-03 13:29:56

您发送的格式似乎与您链接的文档中的格式不同。从文档中:

代码语言:javascript
复制
{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    },
    "apns":{
      "headers":{
        "apns-expiration":"1604750400"
      }
    },
    "android":{
      "ttl":"4500s"
    },
    "webpush":{
      "headers":{
        "TTL":"4500"
      }
    }
  }
}

所以这里的关键是webpush消息的生存时间是在webpush/headers/TTL下设置的,而您正在将它添加到顶层。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58212687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档