GCM中实际可用的消息大小是多少(4kb或更少?)

时间:2014-12-05 05:32:51

标签: android google-cloud-messaging

我正在使用GCM服务器库从我的服务器发送消息。

    message = new Message.Builder()
    .timeToLive(10)
    .delayWhileIdle(false)
    .addData("json", sendMsgData)
    .build();

由于GCM支持4kb的邮件大小,我想知道 sendMsgData的实际大小是多少?
sendMsgData 允许4kb,还是需要计算其他因素并减少实际的sendMsgData大小?

请参阅以下Google文档中的以下内容,如果以下json受4kb限制,用户的实际消息是“数据”以下将少于4kb ......

以下是在google gcm doc网站上包含TTL的JSON格式请求的示例:

{
  "collapse_key" : "demo",
  "delay_while_idle" : true,
  "registration_ids" : ["xyz"],
  "data" : {
    "key1" : "value1",
    "key2" : "value2",
  },
  "time_to_live" : 3
},

1 个答案:

答案 0 :(得分:1)

只有"数据"中的键和值的长度。元素计数到4096字节的限制。预定义的键(例如" collapse_key"," registration_ids"等等......)及其值不计算在内。

我最后一次测试这个限制(几年前),似乎它甚至不是4096字节限制,而是4096字符限制,这是一个更高的限制(因为你可以使用例如,非英语语言的4096个字符,每个字符超过一个字节)。

但我必须承认,我没有使用JSON内容类型测试此限制。我用URL编码的内容测试了它。