IOS平台的幾個推送服務的對比

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   os   ar   strong   資料   

http://blog.163.com/[email protected]/blog/static/171370086201399113833299/       最近研究了一下極光推送(JPush),百度雲推送和個推在IOS平台的推送機制,做了一下對比。
       首先, 介紹蘋果推播通知服務的推送機制(APNS: Apple Push Notification Service):


                                                  圖1  APNS的推送流程

清晰地展示了APNS整個工作流程,其中Provider是第三方開發人員的伺服器。整個流程分三個階段:
  • 第一階段:應用程式把要發送的訊息、目的iPhone的標識打包,發給APNS。
  • 第二階段:APNS在自身的登入Push服務的iPhone列表中,尋找有相應標識的iPhone,並把訊息發送iPhone。
  • 第三階段:iPhone把發來的訊息傳遞給相應的App,並且按照設定彈出Push通知。
極光推送(JPush):
      JPush在IOS平台上有完整的推送服務,他整個推送過程完全不依賴APNS的服務,也就是圖1中的APNS變成了JPush自己的Push伺服器。Iphone到Client App這個過程被簡化了,JPush採用的是透傳方式,訊息的傳遞對於使用者是透明的,不可見的,訊息從JPush伺服器直接就傳到了Client App,使用者無法感知。

百度雲推送:
      百度雲推送是基於APNS的,也就是說他僅僅是APNS的一個代理,他的推送過程如:

                      
                                                     圖2  百度雲推送的推送流程(IOS)  整個過程分為一下幾個階段:
  1. 管理主控台或者Server SDK初始化IOS App的認證(分為開發版認證和發行版認證)。
  2. 運行在手機上的Push SDK執行推送的初始化動作,將AppKey和DevicesToken上傳給雲推送伺服器,伺服器保留。
  3. 管理主控台或者Server SDK向雲推送伺服器發送一條推送指令,伺服器接到指令後,將控制台傳來的UserId(如果是廣播沒有UserId),Msg,與伺服器保留的DevicesToken和認證一併打包傳給APNS伺服器。
  4. APNS接到資料後,根據UserId,將訊息推送給指定的IPhone裝置。

PushSDK 在APNS的編碼基礎上增加自己服務的初始化和綁定介面代碼。

 

個推

     個推的做法就更簡單了,他的整個互動圖如下:

      
                                                              圖3  個推推送互動圖(IOS)       他對開發商的要求最高,他的官方論壇上有這麼一句話:“開發人員首先有一個自己的iOS推送組件,該組件可以實現從你們到蘋果伺服器的推送,根據我們提供的協議增加相應介面”。圖3的右半部分,也就是第三方到APNS這個部分都是由第三方自己實現的,個推僅僅是實現個推伺服器與第三方之間的互動。
       圖中各個函數的含義:
  • auth():個推伺服器向第三方發送“驗證”指令,如果驗證結果正確,則第三方返回Token,8個推伺服器保留這個Token。
  • get_tags():個推伺服器向第三方發送“擷取tag”指令,第三方向個推伺服器返回當前存在的tag列表,個推伺服器保留。
  • push_by_tags():個推伺服器根據保留的tag列表,可以選擇向一些tag發送訊息,講“向tag發送訊息”的指令傳遞給第三方,第三方完成訊息發現送任務。
  • push_by_divece():個推根據divicesId調用第三方發送介面,完成發送任務。

縱觀整個流程,個推伺服器做的都是一些比較簡單的事情,他要求第三方根據他的協議完成auth(),get_tags(),push_by_tags(),push_by_divice()介面,並給出API的地址,供個推伺服器調用。筆者認為他這樣做的原因是希望能夠與android平台的推送共用一套系統,便於管理維護。

2014年2月25日更新:
   筆者今天去個推首頁查看的時候發現個推的解決方案換了,個推最近自己提供了到APNS組件,這樣第三方開發人員就不需要自己實現到APNS的元件服務了,只需要把IOS的認證以及認證密碼傳給個推即可。

IOS平台的幾個推送服務的對比

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.