【问题标题】:Does the payload 4096 bytes include the registration_id length?有效载荷 4096 字节是否包含registration_id 长度?
【发布时间】:2012-12-04 09:44:24
【问题描述】:

在Android GCM文档中,据说payload最大为4096字节。

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

【问题讨论】:

    标签: android push-notification google-cloud-messaging


    【解决方案1】:

    不包括注册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 对象(见下文)。必填。

    【讨论】:

    • 。我不确定。谷歌是否不会将有效载荷中的registration_id计算在内。没有参考文件。在gcm情况下,我发现带有有效载荷的消息:{“registration_id”:“APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx ...”,“data”:{“Nick” : "Mario", "Text" : "伟大的比赛!", "Room" : "PortugalVSDenmark", }, }
    • 在您提供的示例中,有效负载长度为 4+5+4+12+4+16(字段名称和值的长度)。您可以通过尝试将它们替换为单个键/值对来自行验证,其中键的长度 + 值的长度 = 4096。您将看到消息将被发送。然后您可以添加单个字符,然后查看该消息将被拒绝。我必须提到的唯一免责声明是我只测试了简单格式,而不是 JSON,但我希望它们的行为相同。
    【解决方案2】:

    完成接受的答案。我一直在测试,结果如下:

    有效载荷的最大长度为 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"}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-31
      • 2012-09-08
      • 2020-10-11
      • 2017-03-26
      • 1970-01-01
      • 2020-07-31
      • 2017-09-03
      • 2019-07-30
      相关资源
      最近更新 更多