2016-09-23 89 views

回答

3

这通过https://stuff.mit.eduThrottling文档解释它非常好:

为了防止滥用(如发送的消息的洪水的设备)和以优化设备的总体的网络效率和电池寿命, GCM使用令牌桶方案实现对消息的限制。消息按每个应用程序和每个折叠键(包括不可折叠消息)进行限制。每个应用程序折叠键都被授予一些初始令牌,并且在此之后定期授予新的令牌。每个令牌对发送到设备的单个消息有效。如果应用程序崩溃密钥耗尽其可用令牌的供应,则新消息将缓存在未决队列中,直到在定期授予时新的令牌可用时为止。因此,在定期授权间隔之间进行调节可能会增加短时间内发送大量消息的应用程序合拢键的消息传递等待时间。出于网络和电池效率的原因,如果应用程序折叠密钥的未决队列中的消息由GCM为属于非限制类别的消息搭载,则可能会在下一次定期授予的时间之前发送消息。

在一个简单的说明,我想你可以简单地看到节流像漏斗阻止消息的溢出(通常为下游的消息),调整消息的流,以避免洪水泛滥。例如,您发送1000条消息到单个设备(我们还假设所有消息都已成功发送),那么GCM有可能会限制您的消息,以便只有少数消息可以实际通过,或者每条消息都将被发送但不能同时连接到设备。

+0

OP询问FCM。你引用GCM文档。 FCM可能会也可能不会。 –

+0

@SouravGhosh FCM是以GCM为核心构建的新版本。从技术上讲,没有官方的GCM文档明确地解释了GCM和FCM的消息节流如何运作。因此,我将stuff.mit.edu中的一个与OP的问题“*有人可以澄清这个术语?*”提供了有关术语的澄清*(或概念)的链接。在发布这个答案之前,我也在Google上查看了任何官方文档,因此我相当确信当时没有任何文档。如果我找到一个,我一定会在这里更新。干杯! –

+0

我做了一个实验我的self.I创建了一个工具,用于发送1000推送通知,我用xmpp做了这个。现在,我只收到658条消息的送达收据.DID在此之后没有收到任何送达回执。 – Learner