GCM频繁刷新注册id
Posted
技术标签:
【中文标题】GCM频繁刷新注册id【英文标题】:GCM refresh registration id frequently 【发布时间】:2015-09-19 12:08:28 【问题描述】:我正在使用 GCM 向 android 应用程序发送数据,每当新设备登录时,我的云网络服务器都会将 GCM 注册 ID 存储在数据库中,直到再次注销,如果用户数据在我的网络服务器数据库中可用,它将发送 GCM通知设备每当设备收到 GCM 通知时,它将发送数据请求,然后 Web 服务器发送数据并从数据库中删除该用户数据,它工作正常,但随机一些 GCM 通知和数据丢失,我没有得到这个数据丢失了,这个用户数据对我的客户非常重要,需要尽快发送,我无法找到问题的确切位置?
我认为 GCM 经常刷新注册 id 有问题,是这样吗??这是来自我的 Web 服务器的 GCM 注册日志
127.0.0.1 - - [16/Sep/2015:20:02:43 +0000] "POST /RegisterGCM?regid=APA91bGV8N30yt6dYCxdX_RFdSBIujLd-omLju_qKrFkKuOjFWxT--2zBfkHbYXL95yq3UHGEK7TfBgX18ZdBffB7-SCVjDv460aVukRJ2j4uY44021T7x_5I-g&kid=17 HTTP/1.1" 200 43
127.0.0.1 - - [16/Sep/2015:20:02:43 +0000] "POST /RegisterGCM?regid=APA91bGV8N30yt6dYCxdX_RFdSBIujLd-omLju_qKrFkKuOjFWxT--2zBfkHbYXL95yq3UHGEK7TfBgX18ZdBffB7-SCVjDv460aVukRJ2j4uY44021T7x_5I-g&kid=17 HTTP/1.1" 200 43
127.0.0.1 - - [16/Sep/2015:20:02:44 +0000] "POST /RegisterGCM?regid=APA91bGV8N30yt6dYCxdX_RFdSBIujLd-omLju_qKrFkKuOjFWxT--2zBfkHbYXL95yq3UHGEK7TfBgX18ZdBffB7-SCVjDv460aVukRJ2j4uY44021T7x_5I-g&kid=17 HTTP/1.1" 200 43
127.0.0.1 - - [16/Sep/2015:20:03:23 +0000] "POST /RegisterGCM?regid=APA91bGV8N30yt6dYCxdX_RFdSBIujLd-omLju_qKrFkKuOjFWxT--2zBfkHbYXL95yq3UHGEK7TfBgX18ZdBffB7-SCVjDv460aVukRJ2j4uY44021T7x_5I-g&kid=17 HTTP/1.1" 200 43
谁能帮我解决这个问题?提前谢谢...
【问题讨论】:
GCM 不会更改 ID,ID 编码为 GCM SERVER_ID、设备 ID 和应用程序包名称。不能保证推送通知会被传递,您的应用程序还需要能够以另一种方式检索数据。在应用程序确认收到数据之前不要删除数据,也不保证网络连接。 哦,好吧,除了刷新应用,还有其他方法可以向应用发送数据吗?? 【参考方案1】:您的 GCM 通知似乎超出了 4096 字节的 Pyaload 限制。检查消息中包含的有效负载数据的总大小是否超过 GCM 限制:大多数消息为 4096 字节,对于 ios 上的主题消息或通知消息为 2048 字节。这包括键和值。
应用服务器可以发送包含通知和数据负载的消息。在这种情况下,GCM 处理显示通知负载,客户端应用处理数据负载。
另一种可能性是,GCM 支持最多 1000 个收件人的单个消息,因此如果超过此限制,则消息将被修剪。确保您分批发送消息。
【讨论】:
嗨 AniV,不,这与超出有效负载限制无关,因为我没有通过通知发送数据,也没有使用广播通知,所以问题与收件人限制无关..以上是关于GCM频繁刷新注册id的主要内容,如果未能解决你的问题,请参考以下文章