5

在 Android GCM 文档中,据说有效载荷最大为 4096 字节限制。

有效载荷的 4096 字节是否包含registration_id 长度?我发现我可以发送有效载荷为 16038 字节(包括registration_ids)的消息。

4

2 回答 2

7

它不包括注册 ID。

很抱歉没有提供任何支持文件。GCM 文档没有明确说明。但是,我对其进行了测试以验证此行为。我能提供的唯一“证据”是,在多播消息中,您最多可以包含 1000 个注册 ID。1000 个注册 ID 显然无法放入有效负载的 4096 字节。

来自http://developer.android.com/google/gcm/gcm.html

注册ID

带有接收消息的设备列表(注册 ID)的字符串数组。它必须包含至少 1 个且最多 1000 个注册 ID。要发送多播消息,您必须使用 JSON。要将单个消息发送到单个设备,您可以使用仅具有 1 个注册 ID 或纯文本的 JSON 对象(见下文)。必需的。

于 2012-12-04T18:23:45.210 回答
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"}
}
于 2015-09-24T14:54:08.843 回答