2013-02-05 198 views
0

我在iOS中擁有即時消息應用程序。我想使用推送通知讓用戶知道他是否在應用程序最小化時收到了一條消息。 最初我已經實現了應用程序,當應用程序被最小化時,應用程序會通知我的服務器,該服務器又會聯繫APNS以通知消息已收到。但是應用程序有延遲通知服務器。因此,如果用戶最小化應用程序並同時向他發送消息,他不會收到通知,因爲我的服務器仍然將消息發送給應用程序,而不是APNS。即時消息推送通知

我想知道如何克服這種情況在聊天應用程序。無論用戶是否已將應用程序最小化,他們是否將所有聊天消息發送到APNS。如果我將所有消息發送給APNS,那將是一個好的設計?

回答

2

在iOS上,當應用程序「最小化」(實際上是在後臺)時,不能依賴任何正在工作的進程。由於各種原因,操作系統可能會殺死您的進程,無論如何,除非您有資格獲得特殊的擴展後臺處理,否則您的應用程序無法處理超過10分鐘。

通常,對於聊天型應用程序,每次客戶端收到消息時,同一客戶端會發回一條消息,以讓服務器知道它已收到所述消息。這樣,如果您的服務器在幾秒鐘後沒有收到消息收到的信號,則可以假定應用程序未在設備上運行,並且可以通過push來發送消息。

沒有必要在客戶端上使用過多的處理,這將消耗電池,並且不需要發送每一條消息的推送。

+0

感謝您的回覆。當客戶端收到消息時,我的聊天應用程序不會發送任何確認。當然,生病必須嘗試一些解決方法。 – Chinta