【问题标题】:Message throttling in GCM / FCM push notificationGCM / FCM 推送通知中的消息限制
【发布时间】:2016-11-16 15:09:40
【问题描述】:

我想知道 Google FCM 推送通知中的消息限制是什么?我正在尝试使用 FCM 实现示例推送通知,但不了解他们步骤中提到的消息限制。也没有找到关于它的文档。

https://aerogear.org/docs/unifiedpush/aerogear-push-android/guides/#google-setup

有人可以澄清一下这个术语吗?

【问题讨论】:

    标签: google-cloud-messaging firebase-cloud-messaging


    【解决方案1】:

    https://stuff.mit.eduThrottling 文档很好地解释了这一点:

    为防止滥用(例如向设备发送大量消息)并优化设备的整体网络效率和电池寿命,GCM 使用令牌桶方案实现消息限制。消息在每个应用程序和每个折叠键(包括不可折叠消息)的基础上受到限制。每个应用程序崩溃密钥都被授予一些初始令牌,然后定期授予新令牌。每个令牌对于发送到设备的单个消息都是有效的。如果应用程序崩溃密钥耗尽了其可用令牌的供应,则新消息将缓冲在待处理队列中,直到在定期授予时新令牌变得可用。因此,在定期授予间隔之间进行节流可能会增加在短时间内发送大量消息的应用程序崩溃密钥的消息传递延迟。如果出于网络和电池效率的原因,GCM 将属于非节流类别的消息搭载在应用程序崩溃密钥的挂起队列中的消息,则它们可能会在下一次定期授予之前传递。

    简单来说,我想您可以简单地看到像漏斗一样的限制,它可以防止消息溢出(通常用于下游消息传递),调节消息的流入以避免泛滥。

    例如,您向单个设备发送 1000 条消息(假设所有消息都已成功发送),GCM 有可能会限制您的消息,以便只有少数消息会真正推送,或者每条消息都会被传递但不能同时连接到设备。

    【讨论】:

    • OP 询问了 FCM。您引用了 GCM 文档。对于 FCM,这可能是真的,也可能不是。
    • @SouravGhosh FCM 是一个以 GCM 为核心构建的较新版本。从技术上讲,没有官方 GCM 文档明确解释消息限制如何在 GCM 和 FCM 的后台工作。因此,我根据 OP 的问题“有人可以澄清这个术语吗?我>”。在发布此答案之前,我还查看了 Google 的任何官方文档,所以我很确定当时没有任何官方文档。如果我找到了,我一定会在这里更新。干杯!
    • 我自己做了一个实验。我创建了一个用于发送 1000 个推送通知的工具,我使用 xmpp 完成了这项工作。现在我只收到了 658 条消息的送达回执。之后我没有收到任何送达回执。
    猜你喜欢
    • 1970-01-01
    • 2016-11-22
    • 2017-03-16
    • 2017-02-23
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多