在Android GCM文檔中,據說有效負載高達4096字節的限制。有效載荷4096字節是否包含registration_id長度?
是否有效載荷的4096個字節包括registration_id長度是多少?我發現我可以發送一個有效負載爲16038字節的消息(包括registration_ids)。
在Android GCM文檔中,據說有效負載高達4096字節的限制。有效載荷4096字節是否包含registration_id長度?
是否有效載荷的4096個字節包括registration_id長度是多少?我發現我可以發送一個有效負載爲16038字節的消息(包括registration_ids)。
它不包括註冊ID。
我很抱歉無法提供任何證明文件。 GCM文件沒有明確說明。但是,爲了驗證這種行爲,我對它進行了測試。 我可以提供的唯一「證明」是在多播消息中,您最多可以包含1000個註冊ID。 1000註冊ID顯然不能適應有效載荷的4096個字節。
從http://developer.android.com/google/gcm/gcm.html:
registration_ids
一個字符串數組,與接收到該消息的設備(註冊ID)的列表。它必須包含至少1個和最多1000個註冊ID。要發送多播消息,您必須使用JSON。爲了將單條消息發送到單個設備,您可以使用僅有1個註冊ID或純文本的JSON對象(請參見下文)。需要。
要完成接受的答案。我一直在測試這一點,結果如下:
有效載荷的最大lenght爲4096個字節。如果您使用的是JSON,並且您的消息如下所示:
{
"to" : "APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A",
"data": {"a":"Some information. Only this part inside data counts as payload"}
}
消息的唯一部分計爲有效內容是「數據」內的部分。即使您發送到多個設備也是如此。
{
"registration_ids" : ["APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A",
"APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A"]
"data": {"a":"Some information. Only this part inside data counts as payload"}
}
。我不是很確定。谷歌是否會不計registration_id INT有效載荷out.no文件refered.in GCM情況下,我找到像老鄉有效載荷的消息:{ 「registration_id」:「APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx ......」, 「數據」:{ 「尼克」: 「馬里奧」, 「文」: 「偉大的比賽!」, 「房間」: 「PortugalVSDenmark」, }, } – user1556497
在您所提供的示例中,有效載荷長度爲4 + 5 + 4 + 12 + 4 + 16(字段名稱和值的長度)。您可以通過嘗試用一個鍵/值對代替它們,其中鍵的長度+值的長度= 4096,您可以自行驗證。您將看到該消息將被髮送。然後,您可以添加單個字符並查看該郵件將被拒絕。我必須提及的唯一免責聲明是我只測試了它的簡單格式,而不是JSON,但我希望它們的行爲相同。 – Eran