在 Android GCM 文档中,据说有效载荷最大为 4096 字节限制。
有效载荷的 4096 字节是否包含registration_id 长度?我发现我可以发送有效载荷为 16038 字节(包括registration_ids)的消息。
在 Android GCM 文档中,据说有效载荷最大为 4096 字节限制。
有效载荷的 4096 字节是否包含registration_id 长度?我发现我可以发送有效载荷为 16038 字节(包括registration_ids)的消息。
它不包括注册 ID。
很抱歉没有提供任何支持文件。GCM 文档没有明确说明。但是,我对其进行了测试以验证此行为。我能提供的唯一“证据”是,在多播消息中,您最多可以包含 1000 个注册 ID。1000 个注册 ID 显然无法放入有效负载的 4096 字节。
来自http://developer.android.com/google/gcm/gcm.html:
注册ID
带有接收消息的设备列表(注册 ID)的字符串数组。它必须包含至少 1 个且最多 1000 个注册 ID。要发送多播消息,您必须使用 JSON。要将单个消息发送到单个设备,您可以使用仅具有 1 个注册 ID 或纯文本的 JSON 对象(见下文)。必需的。
完成接受的答案。我一直在对此进行测试,结果如下:
有效载荷的最大长度为 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"}
}