2014-10-10 27 views

回答

2

这是正确的。对GCM的单个请求最多可以包含1000个注册ID。您必须将您的1500个ID分为两个单独的请求。

+1

thx,刚刚在android网站上找到了确切段落https://developer.android.com/google/gcm/server.html#send-msg'Target 必需。当您的应用服务器在GCM中发送消息时,它必须指定一个目标。 对于HTTP,您必须将目标指定为以下项之一: registration_ids:用于发送到1个或多个设备(最多1000个)。当您向多个注册ID发送消息时,这称为多播消息。 notification_key:用于发送给单个用户拥有的多个设备。# – 2014-10-13 01:33:32

+0

@Eran我正在使用App Engine端点和GCM。在MessagingEndpoint类的代码中,我得到了下面的行List records = ofy()。load()。type(RegistrationRecord.class).limit(10).list(); (注册记录记录:记录){ //原始代码行 结果result = sender.send(msg,record.getRegId(),5); ...}所以,你可以请告诉我如何将1500点的ID分成两个单独的请求。谢谢 – Programmer 2015-04-15 05:56:02

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方法提供一个List注册标识集合,而不是一个注册标识。

相关问题