GCM限制是每个设备还是每个注册ID有100条消息/4个折叠键?

3
根据GCM文档,有两个GCM限制。其一是设备离线时,GCM服务器最多可以保持100条消息;另一个限制是每个SENDER_ID PER DEVICE只能有最多4个折叠键。
在我们的使用场景中,单个设备上安装了5个或更多不同的应用程序(每个都是APK文件),并且每个应用程序独立注册并获取GCM注册ID(尽管在服务器端只有一个Google项目,仍使用相同的SENDER_ID)。那么每个应用程序是否都有自己的100/4定额,还是所有5个应用程序共享同一个100/4定额?
如果所有5个应用程序共享同一个100/4定额,则非常可能在手机恢复在线状态后,其中一个或多个应用程序将无法接收任何排队的GCM消息。当GCM服务器上排队超过100条消息(因此全部删除,只留下一条特殊的“您需要执行完整同步”的消息,那么哪个应用程序可以收到?)或4个折叠键的限制杀死第五个可折叠的消息时,出现这种情况。
3个回答

1
我相信100/4配额是每个注册ID的(这意味着每个应用程序都有单独的配额,无论您是否为不同的应用程序使用相同的发送者ID)。
文档没有说明100/4配额是每个发送者ID的。它说它是每个设备的。但是,由于单个设备上的所有应用程序共享相同的配额是没有意义的,因此我认为配额是每个应用程序每个设备(即每个注册ID)。

0

来自Android开发者文档,

GCM服务器每个设备仅允许使用最多4个不同的折叠键。

你可以指定任意数量的折叠键。但是如果消息尚未推送到设备,则GCM存储的最大唯一折叠键将为4。


0

GCM 4个collapse_keys和每100条消息的限制是针对Registration ID的,因此其他应用程序不会受到影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接