IOS學習筆記 蘋果推送機制APNs

2021-09-06 15:35:43 字數 2482 閱讀 6004

**:唐韌_ryan  

蘋果的推送服務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伺服器註冊,註冊...

蘋果訊息推送機制

推送目前使用過個推,極光推送,友盟推送等,現在根據這些第三方的推送,總結一下推送的原理。第一階段 服務端程式把要傳送的訊息 目的iphone的標識打包,發給apns。第二階段 apns在自身的已註冊push服務的iphone列表中,查詢有相應標識的iphone,並把訊息發到iphone。第三階段 i...

蘋果推送機制APNs(一)

蘋果的推送服務apns基本原理簡單來說就是蘋果利用自己專門的推送伺服器 apns 接收來自我們自己應用伺服器的需要被推送的資訊,然後推送到指定的ios裝置上,然後由裝置通知到我們的應用程式,裝置以通知或者聲音的形式通知使用者有新的訊息。推送的前提是裝有我們應用的裝置需要向apns伺服器註冊,註冊成功...