複製鏈接
請複製以下鏈接發送給好友

APNS

鎖定
APNs(英文全稱:Apple Push Notification service),中文翻譯為:蘋果推送通知服務。該技術由蘋果公司提供的APNs服務。
中文名
蘋果推送通知服務
外文名
Apple Push Notification service
別    名
APNS
簡    稱
APNs
提供服務公司
蘋果公司

APNS簡介

APNs(英文全稱:Apple Push Notification service),中文翻譯為:蘋果推送通知服務。 [1]  該技術由蘋果公司提供的APNs服務。
蘋果推送通知服務的傳輸和路由的通知從一個給定的供應商給定的設備。通知是由兩個主要部分組成的數據:設備令牌和有效載荷的短消息。設備令牌是類似於一個電話號碼,它包含的信息,使的APN定位的設備上安裝客户端應用程序。APN還用它來驗證通知的路由有效載荷是一個JSON定義的屬性列表中指定的設備上的應用程序的用户將被提醒。 [1] 

APNS工作原理

首先,APNs會對用户進行物理連接認證,和設備令牌認證(簡言之就是蘋果的服務器檢查設備裏的證書以確定其為蘋果設備);
然後,將服務器的信息接收並且保存在APNs當中,APNs從其中註冊的列表中查找該IOS設備(設備可以為iPhone、iPad、iPod Touch,版本是iOS3.0及以上)並將信息發送到該設備;
最後,設備接收到數據信息給相應的APP,並按照設定彈出Push信息。

APNS推送方式

推薦使用APNs服務,穩定,方便,美中不足是沒有推送到達的回執和統計,不方便產品運營。如對此方面有需求可以使用Mobpush,極光推送個推等第三方推送服務解決 [2] 
Windows Mobile
使用MPNS(Microsoft Push Notification Service 微軟推送通知服務),相應速度不錯,但推送不帶狀態,很多功能無法實現。
IOS推送消息是許多IOS應用都具備的功能,最近也在研究這個功能,參考了很多資料終於搞定了,下面就把步驟拿出來分享下:
IOS消息推送的工作機制可以簡單的用圖1來概括:
圖1 IOS消息推送機制 圖1 IOS消息推送機制
Provider是指某個iPhone軟件的Push服務器,APNS是Apple Push Notification Service的縮寫,是蘋果的服務器
圖2 推送完成過程 圖2 推送完成過程
圖2可以分為三個階段:
第一階段:應用程序把要發送的消息、目的iPhone的標識打包,發給APNS。
第二階段:APNS在自身的已註冊Push服務的iPhone列表中,查找有相應標識的iPhone,並把消息發送到iPhone。
第三階段:iPhone把發來的消息傳遞給相應的應用程序,並且按照設定彈出Push通知。

APNS評價標準

推送方案的公認評價採取4s標準:1.Safe(安全) 2. Stable(穩定) 3.Save(省電省流量省成本) 4.Slim(體積小)

APNS安全

推送方案應支持透傳及各種加密方案,保障信息傳遞安全。
推送方案的ID系統應該獨立於已有的網站或服務的ID系統,這樣保障用户在不同手機上登錄後的信息投遞準確性,避免因為取消綁定事件失敗因網絡傳輸而造成的信息誤投送。

APNS穩定

穩定包括兩個部分一個是服務器端的穩定性,一個是手機端的穩定性。
服務端穩定性,因為使用長連接方案,對服務器的開銷和要求很大,推送方案對服務器開發要求很高,海量線程連接下的服務器穩定性是非常具有挑戰性的。一般的評判標準包括:
- 同時在線時峯值 (一般按照百萬併發連接時服務器穩定性評測)
- 高併發時消息平均延遲時間(一般按照1分鐘處理1百萬條信息評測)
- 服務穩定性 (一般要求全年99.9%以上可用,有備份,有負載均衡等)
鑑於服務器穩定的開發難度很大,小團隊不建議自己開發,建議使用穩定的第三方推送方案,如極光推送,個推,蝴蝶等。
手機端的穩定性,主要是因為中國的複雜網絡狀況及手機型號適配情況造成手機長時間穩定聯網較困難,所以穩定性非常重要,一般的評判標準包括:
- 每日聯網23.5小時以上用户比例 (表徵聯網穩定性)
- 消息發送後9小時內收到率 (表徵到達率)
一般來説,推送方案要做網絡的分運營商,分省,分機型適配,自己開發工作量較大 [2] 

APNS節省

省電應注意CPU休眠,一般用服務縮短待機時間百分比評判
省流量應注意協議的修改和冗餘數據包的處理,一般用空載待機月流量評判
省成本應考慮單服務器承載同時連接數,可承載同時連接數越多成本越低,業內 頂尖水平為極光推送,個推的單服務器50萬連接 [2] 

APNS體積小

推送服務應該體積儘量小,不影響主程序的大小和複雜度,一般以小於300K為宜。
參考資料