APNS

APNS

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

基本介紹

  • 中文名:蘋果推送通知服務
  • 外文名:Apple Push Notification service
  • 簡稱:APNs
  • 提供服務公司蘋果公司
簡介,工作原理,推送方式,評價標準,Safe (安全),Stable(穩定),Save(節省),Slim(體積小),

簡介

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

工作原理

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

推送方式

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

評價標準

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

Safe (安全)

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

Stable(穩定)

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

Save(節省)

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

Slim(體積小)

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

相關詞條

熱門詞條

聯絡我們