2011-07-06 76 views
15

我有一個iOS應用程序使用推送通知,但有一段時間我沒有收到我的設備上的通知,當我希望收到一個。我會收到所有後續通知。我確認了我的後端,以確保所有通知都已成功發送。Apple的推送通知服務可靠嗎?

所以我的問題是:是APNs 差不多 100%可靠或應該我只是希望錯過一些通知這裏和那裏,因爲間歇3G/WiFi連接?

我會認爲APNs作爲排隊系統工作,如果在前幾次沒有成功,就會重試。

回答

22

APN服務會將消息排隊 - 但Apple不保證傳送所有消息。當用戶離線時,只有來自應用程序的上次消息將保留在隊列中。另外,舊消息可能會被刪除。

Local and Push Notification Programming Guide

蘋果推送通知服務 包括服務 (QoS)的組件的默認質量執行一個 存儲和轉發功能。如果APN 嘗試傳遞通知,但是 設備處於脫機狀態,則QoS將存儲 通知。它在 設備上每個應用程序僅保留一條 通知:最後一條通知從該應用程序的提供商處收到 。 當離線設備後面的 重新連接時,QoS會將存儲的通知轉發給設備。 QoS在刪除之前會保留限制期的通知。

+0

感謝您的及時回覆,史蒂夫。在我的情況下,我認爲我一次沒有舊信息或太多信息的問題。這可能更像每10-20分鐘一次。這是慷慨的。 –

+3

Andrew;那麼對於你的情況,如果用戶離線(沒有WiFi或3G)20-40分鐘,他們可能不會得到1或2條消息。 – Steve

+0

哦,真棒。很好的編輯。這可能是答案。 –

1

我有一個天藍色的網站(和移動服務,服務總線,數據庫,活動目錄等),將推送通知發送到Windows Phone和iPhone上的xamarin應用程序。兩者都收到第一份通知。第二個通知只能通過windows phone收到,它不會讓它通過iphone。如果我發送另一個通知,則兩者都會收到通知。因此,我更多地調查了這種行爲,發現如果我機槍發出一系列通知(手持式每2秒輸入一次),那麼windows phone會收到它們,但iphone只收到第一個通知。但是,如果我等一會兒併發送通知,它就會被兩個設備接收。下一個測試是查看通知是否總是以5分鐘的間隔收到。發送了兩條消息,間隔五分鐘,windows phone和iphone都收到了兩個通知。