我正在使用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
},

最佳答案

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

我上次测试此限制(几年前)时,似乎甚至没有4096字节的限制,但是4096个字符的限制,这是一个更高的限制(因为您可以使用4096非英语字符,每个字符占用一个以上的字节)。

不过,我必须承认,我没有使用JSON内容类型测试此限制。我用URL编码的内容对其进行了测试。

08-17 19:33