在Android GCM文档中,据说有效负载限制为4096字节。
有效负载的4096字节是否包含registration_id长度?我发现我可以发送一个有效载荷为16038字节的消息(包括registration_ids)。
答案 0 :(得分:7)
它不包括注册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对象,或纯文本(见下文)。必需的。
答案 1 :(得分:0)
完成接受的答案。我一直在测试这个,结果如下:
有效负载的最大长度为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"}
}