2014-10-10 31 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註冊標識集合,而不是一個註冊標識。

相關問題