2012-04-18 88 views
3

我在數據庫中保存了用戶的設備令牌。 在推送通知時,我從數據庫加載所有設備令牌,然後在一個循環中,我一次向一個用戶發送推送消息。 現在大約有30萬用戶,我想知道,還有其他更好的方法嗎? 謝謝向大量用戶推送iOS通知

+0

我也想知道如果我必須創建幾個線程並讓每個線程處理隊列中的n個用戶 – Arcadian 2012-04-18 02:25:05

+0

你用什麼來推送你的通知?我們使用了一個實現[forking]的服務器腳本(http://en.wikipedia.org/wiki/Fork_(operating_system))。這樣你可以產生幾個分支併發送通知給同時,這將大大縮短髮送通知的時間長度 – KDaker 2012-07-02 04:02:59

+0

@KDaker謝謝,我不知道,我會嘗試。 – Mil0R3 2012-07-02 05:30:01

回答

3

蘋果沒有更好的辦法。您需要將相同的消息發送給每個設備令牌。像Parse.com這樣的服務將通過讓你播放到設備組來掩蓋這種幕後骯髒的工作,但是你仍然需要最初訂閱每個設備令牌到組...

因此,要回答你的問題,沒有沒有更好的方法,你必須循環併發送到所有設備令牌:(。

+0

長輪詢怎麼樣? – Mil0R3 2012-09-21 00:55:01

+0

但是,如果您的應用程序不是VOIP或導航,或者任何其他類型的應用程序允許在後臺運行,您可以實施長輪詢,只要用戶「關閉」您的應用程序,您的長輪詢將不再工作... 編輯:一些應用程序做的是使用長時間輪詢,而應用程序是'打開',甚至在後臺代碼調用(它允許任何應用程序在後臺運行代碼達到應用程序關閉後10分鐘)。在您的應用程序允許保持長輪詢連接處於活動狀態後,您會發信號通知您的服務器開始發送推送通知。 – Redth 2012-09-22 15:40:00

+0

此外,我的圖書館:PushSharp https://github.com/Redth/PushSharp會讓你在很短的時間內發出大量通知。 – Redth 2012-09-22 15:40:46