Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Push notification GCM-注册ID的最大长度_Push Notification_Google Cloud Messaging - Fatal编程技术网

Push notification GCM-注册ID的最大长度

Push notification GCM-注册ID的最大长度,push-notification,google-cloud-messaging,Push Notification,Google Cloud Messaging,更新:已弃用,请使用 GCM服务器发布的注册ID的最大长度是多少?GCM文档不提供此信息。通过谷歌搜索发现,注册ID本质上不是固定长度的,长度可以达到4K(4096字节)。但这些都不是谷歌的官方答案。我目前收到162个字符长的注册ID。有人能帮忙吗?我也想知道这件事。我的注册id大小是183个字符。我怀疑它不会超过512个字符,更不用说4K了。想象一下发送批量通知,4K注册id x 1000=4MB消息大小 最后,我只使用MySQL表中的“text”类型来存储注册id。因此,即使google向我

更新:已弃用,请使用


GCM服务器发布的注册ID的最大长度是多少?GCM文档不提供此信息。通过谷歌搜索发现,注册ID本质上不是固定长度的,长度可以达到4K(4096字节)。但这些都不是谷歌的官方答案。我目前收到162个字符长的注册ID。有人能帮忙吗?

我也想知道这件事。我的注册id大小是183个字符。我怀疑它不会超过512个字符,更不用说4K了。想象一下发送批量通知,4K注册id x 1000=4MB消息大小

最后,我只使用MySQL表中的“text”类型来存储注册id。因此,即使google向我发送1K、2K或4K(不太可能)注册id,我也能够处理它


更新:我遇到了一个新的注册id大小:205。

在android gcm论坛上,一个谷歌的开发者,它是4k。

这是gcm文档中所说的

一个JSON对象,其字段表示消息有效负载数据的键值对。如果存在,有效负载数据将作为应用程序数据包含在意图中,密钥是额外的名称。例如,“data”:{“score”:“3x1”}将产生一个额外命名的意图分数,其值为字符串3x1

虽然消息的总大小(4kb)有限制,但键/值对的数量没有限制。这些值可以是任何JSON对象,但我们建议使用字符串,因为这些值无论如何都会在GCM服务器中转换为字符串

如果要包含对象或其他非字符串数据类型(如整数或布尔值),则必须自己进行字符串转换。还要注意,该键不能是保留字(来自或任何以google开头的字)


让事情稍微复杂一点的是,有一些保留字(比如collapse_key)是技术上允许在有效负载数据中使用的。但是,如果请求还包含该单词,则请求中的值将覆盖有效负载数据中的值。因此,即使在技术允许的情况下,也不建议使用此表中定义为字段名的单词。可选。

所以gcmId的最大长度是512个字符?就是这样,我们不知道它可以有多长。到目前为止,我看到的最长的是205个字符。如果其他人看到较长的应用程序,他们可能会插话。你的应用程序包名会影响应用程序的大小。在我的测试中,我们已经看到,通过减少包长度,它减少了从GCM发送的注册令牌的大小。在MySql表中使用“text”类型不会让您为其创建索引。存储MD5(reg_id)怎么样?32个字符,独一无二。除了索引之外,这对我来说是一个很好的解决方案,至少看起来是这样。当然,您也可以存储原始密钥,但是对所有操作都使用哈希密钥。可能的重复是指通知负载,而不是注册id。另一个线程,来自谷歌开发人员的相同答案:作为确认…他们可以确认他们想要的任何东西!开发人员唯一需要的是关于这个值的一个像样的文档。。。这么难吗?这就是当你期望DB条目为255个字符(合理的值,但不是事实)时,你在应用程序中得到错误的原因。稍后你收到>255…阅读同一google group post,这似乎是一个错误,4k是消息有效负载的限制,而不是注册表id。255似乎是安全限制,同样根据这篇文章,我做了varchar(512)只是为了安全:这是有效载荷,不是ID。