我正在使用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编码的内容对其进行了测试。