2016-09-23 292 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