2014-01-24 108 views
0

我需要將推送通知一次(批量)發送到1000s(成千上萬)設備。 我需要的是,繼續發送推送通知丟棄ios的設備失敗

如果由於某些設備令牌發生錯誤(假設100令牌), 我需要放棄發送推送通知,只有令牌和從明年設備令牌(第101)繼續。

在我的數據庫中,有生產令牌,但也有一些是開發。我不知道他們中哪些是生產,哪些是開發令牌。我正在使用生產證書。我認爲,由於某些開發標記,推送不會發送到所有設備。

那麼,是否有任何區分開發或生產的可能性?或者,如果一個令牌發生錯誤並繼續使用下一個令牌,則簡單地放棄。我使用PHP作爲推送通知的服務端。

回答

0

找到開發標記的唯一方法是檢測從Apple返回的無效設備標記的錯誤響應(假設您以增強的二進制格式發送通知)。另一種方法是,如果你知道在開發中測試APNS時使用的設備的完整列表,則嘗試在這些設備上安裝開發版本並在註冊到APNS時獲得開發令牌。只有少數這類設備時,這纔是實用的。

+0

如何檢測錯誤。我的意思是如何準確知道哪個令牌無效?而且,在檢測到無效令牌後,我是否需要刪除這些令牌或忽略它們?我不能做你的另一種方式,因爲有1000個用戶。你能建議我如何處理這個問題嗎?提前致謝..!! –

+0

@BarcelonaTsandesh即使有1000個用戶,我也應該想象用於開發的設備數量要少得多。至於檢測錯誤,在增強格式中,您發送一個帶有標識符的消息。如果您收到錯誤響應,它將包含一個消息ID,並從該ID可以找到該消息的設備令牌(如果您將該數據存儲在服務器中)。最好刪除無效標記,而不要將開發標記與生產標記混合在同一個數據庫中。 – Eran

+0

感謝您的想法。但是,你能幫我查出無效的令牌嗎?任何教程,文檔或示例代碼? –

相關問題