2013-11-05 28 views
1

我有一個Windows服務,發送我們的應用程序的推送通知。在服務中,我維護了大約60秒的推送通知列表,所以如果我沒有得到任何反饋,我可以嘗試重試。PushSharp - APNS - 內部緩存

我知道內部PushSharp必須使用某種集合來管理這個。我是否在複製作品?我保證會收到我發送的每個通知的回覆?

回答

1

Apple不會爲APNS服務器成功接受的消息返回響應,即使消息被其服務器接受,也不能保證傳送到設備。因此,您從PushSharp獲得的任何反饋都不是您可以依賴的。最好的PushSharp可以做的是嘗試讀取來自Apple的錯誤響應,並且每當它收到錯誤響應(包含消息ID)時,它都可以假定在失敗消息之前發送的所有消息都被接受,並且所有消息失敗的消息被拒絕後需要重新發送。

知道APNS向設備傳遞消息的唯一方法是設備在用戶點擊通知後向服務器發送確認。如果用戶沒有點擊通知,那麼即使是這種確認也是不可能的(除了在iOS7中允許在用戶點擊之前對通知進行後臺處理)。

+1

我還在挖掘PushSharp代碼。當它收到來自Apple的錯誤時,它會自動重新發送ID後的消息,還是那些提供給Requeue委託的消息? –