蘋果的推送服務apns基本原理簡 單來說就是蘋果利用自己專門的推送伺服器(apns)接收來自我們自己應用伺服器的需要被推送的資訊,然後推送到指定的ios裝置上,然後由裝置通知到我 們的應用程式,裝置以通知或者聲音的形式通知使用者有新的訊息。推送的前提是裝有我們應用的裝置需要向apns伺服器註冊,註冊成功後apns伺服器會返給 我們乙個device_token,拿到這個token後我們將這個token發給我們自己的應用伺服器,當有需要被推送的訊息時,我們的應用伺服器會將 訊息按指定的格式打包,然後結合裝置的device_token一併發給apns伺服器,由於我們的應用和apns維持乙個基於tcp的長連線,apns 將新訊息推送到我們裝置上,然後在螢幕上顯示出新訊息來。整個過程基本就這樣,下面我們看一下裝置註冊apns的流程圖:
上圖完成了如下步驟:
1.device連線apns伺服器並攜帶裝置序列號
2.連線成功,apns經過打包和處理產生device_token並返回給註冊的device
3.device攜帶獲取的device_token向我們自己的應用伺服器註冊
4.完成需要培推送的device在apns伺服器和我們自己的應用伺服器註冊
執行順序如下所示:
這 裡要提到的一點是,我們的裝置和apns伺服器之間的通訊是基於ssl協議的tcp流通信,二者之間維持乙個長連線,當從apns伺服器註冊成功後,一定 要將device_token傳送給我們的應用伺服器,因為在推送過程中,首相是由我們的應用伺服器(上圖中provider)將需要推送的訊息結合 device_token按指定格式(後面會提到)打包然後傳送給apns伺服器,然後由apns伺服器推送給我們的裝置。
好了,註冊裝置的過程完成了,接下來就是如何推送了:
推送的過程經過如下步驟:
1.首先,安裝了具有推送功能的應用,我們的裝置在有網路的情況下會連線蘋果推送伺服器,連線過程中,apns會驗證device_token,連線成功後維持乙個長連線;
2.provider(我們自己的伺服器)收到需要被推送的訊息並結合被推送裝置的device_token一起打包傳送給apns伺服器;
3.apns伺服器將推送資訊推送給指定device_token的裝置;
4.裝置收到推送訊息後通知我們的應用程式並顯示和提示使用者(聲音、彈出框)
比較直觀的流程參照下圖:
上面提到了將device_token和推送訊息打包的過程,那麼,接下來就看看這個資訊包結構是怎樣的:
有 這麼一種情況,當我們將應用從裝置解除安裝後,推送的訊息改如何處理呢。我們知道,當我們將應用從裝置解除安裝後,我們是收不到provider給我們推送的訊息 的,但是,如何讓apns和provider都知道不去向這台解除安裝了應用的裝置推送訊息呢?針對這個問題,蘋果也已經幫我們解決了,那就是 feedback service。他是apns的一部分,apns會持續的更新feedback service的列表,當我們的provider將資訊發給apns推送到我們的裝置時,如果這時裝置無法將訊息推送到指定的應用,就會向apns伺服器 報告乙個反饋資訊,而這個資訊就記錄在feedback service中。按照這種方式,provider應該定時的去檢測feedback service的列表,然後刪除在自己資料庫中記錄的存在於反饋列表中的device_token,從而不再向這些裝置傳送推送資訊。連線 feedback service的過程同樣使用socket的方式,連線上後,直接接收由apns傳輸給我們的反饋列表,傳輸完成後斷開連線,然後我們根據這個最新的反饋 列表在更新我們自己的資料庫,刪除那些不再需要推送資訊的裝置的device_token。從feedback service讀取的資料結構如下:
結構中包含三個部分,第一部分是一 個時間戳,記錄的是裝置失效後的時間資訊,第二個部分是device_token的長度,第三部分就是失效的device_token,我們所要獲取的就 是第三部分,跟我們的資料庫進行對比後,刪除對應的device_token,下次不再向這些裝置傳送推送資訊。
蘋果推送機制APNs(一)
蘋果的推送服務apns基本原理簡單來說就是蘋果利用自己專門的推送伺服器 apns 接收來自我們自己應用伺服器的需要被推送的資訊,然後推送到指定的ios裝置上,然後由裝置通知到我們的應用程式,裝置以通知或者聲音的形式通知使用者有新的訊息。推送的前提是裝有我們應用的裝置需要向apns伺服器註冊,註冊成功...
APNS的推送機制
首先我們看一下蘋果官方給出的對ios推送機制的解釋。如下圖 apns推送通知的詳細工作流程 下面這張圖是說明apns推送通知的詳細工作流程 根據我們可以概括一下 1 應用程式註冊apns訊息推送。2 ios從apns server獲取devicetoken,應用程式接收device token。3 ...
IOS學習筆記 蘋果推送機制APNs
唐韌 ryan 蘋果的推送服務apns基本原理簡 單來說就是蘋果利用自己專門的推送伺服器 apns 接收來自我們自己應用伺服器的需要被推送的資訊,然後推送到指定的ios裝置上,然後由裝置通知到我 們的應用程式,裝置以通知或者聲音的形式通知使用者有新的訊息。推送的前提是裝有我們應用的裝置需要向apns...