gcm 一次可以接收多少个设备推送消息

Posted

技术标签:

【中文标题】gcm 一次可以接收多少个设备推送消息【英文标题】:gcm how many devices can receive a push message at a time 【发布时间】:2014-10-10 16:00:08 【问题描述】:

我有大约 1500 个注册 ID,我尝试发送 1 个推送通知。但它没有。是不是 GCM 不允许每条消息发送超过 1000 个注册 ID?

【问题讨论】:

【参考方案1】:

没错。对 GCM 的单个请求最多可以包含 1000 个注册 ID。您必须将 1500 个 ID 拆分为两个单独的请求。

【讨论】:

谢谢,刚刚在安卓网站developer.android.com/google/gcm/server.html#send-msgTarget Required. When your app server sends a message in GCM, it must specify a target. For HTTP you must specify the target as one of: registration_ids: For sending to 1 or more devices (up to 1000). When you send a message to multiple registration IDs, that is called a multicast message. notification_key: For sending to multiple devices owned by a single user.找到了确切的段落@ @Eran 我正在使用带有 GCM 的 App Engine Endpoint。在 MessagingEndpoint 类的代码中,我得到以下行 List records = ofy().load().type(RegistrationRecord.class).limit(10).list(); for (RegistrationRecord record : records) //原始代码行 Result result = sender.send(msg, record.getRegId(), 5); ... 那么您能否告诉我如何将您的 1500 个 ID 拆分为两个单独的请求。谢谢【参考方案2】:

引自谷歌文档:

GCM 最多支持 1,000 个收件人的单封邮件。此功能使向您的整个用户群发送重要消息变得更加容易。例如,假设您有一条消息需要发送给 1,000,000 名用户,而您的服务器每秒可以处理发送大约 500 条消息。如果您只用一个收件人发送每条消息,则需要 1,000,000/500 = 2,000 秒,或大约半小时。但是,将 1,000 个收件人附加到每封邮件,将邮件发送给 1,000,000 个收件人所需的总时间变为 (1,000,000/1,000) / 500 = 2 秒。这不仅有用,而且对于及时的数据也很重要,例如自然灾害警报或体育赛事比分,其中 30 分钟的间隔可能会使信息变得无用。

利用此功能很容易。如果您使用 Java 的 GCM 帮助程序库,只需向 send 或 sendNoRetry 方法提供注册 ID 的 List 集合,而不是单个注册 ID。

【讨论】:

以上是关于gcm 一次可以接收多少个设备推送消息的主要内容,如果未能解决你的问题,请参考以下文章

设备如何接收 Android GCM 推送通知?

Android 设备接收无休止的推送通知

GCM 推送通知,其中消息从移动设备推送到 GCM 服务器

从应用服务器接收 GCM 推送通知消息的步骤

GCM 推送通知设备未收到消息

gcm推送通知:先成功,后IOS未注册