推送並不是什麼新技術,這種技術在互連網時代就已經很流行了。只是隨著進入移動互連網時代,推送技術顯得更加重要。因為在智能手機中,推送從某種程度上,可以取代使用多年的簡訊,而且與簡訊相比,還可以向使用者展示更多的資訊(如映像、表格、聲音等)。
推送技術的實現通常會使用服務端向用戶端推送訊息的方式。也就是說用戶端通過使用者名稱、Key等ID註冊到服務端後,在服務端就可以將訊息向所有活動的用戶端發送。
實際上,在很多移動作業系統中,官方都為其提供了推送方案,例如,Google的雲推送、IOS、Windows Phone7/8也都提供了類似的推送方案。不過這些推送方案的伺服器都在國外,有一些推送服務(如Google的雲推送)在國內由於某些原因不太穩定,所以國內近幾年湧現出了很多專門為國人打造的推送服務。
本文將從各種流行移動作業系統入手介紹推送技術的各種實現方式。當然,我們的主要目的是討論Android的推送技術。
一、iOS的推送技術
Apple為IOS提供了很完美的推送方案,其基本原理是Apple提供了自己的推送伺服器,叫APNS(Apple Push Notification Service,蘋果推播通知伺服器)。而用戶端裝置(IPhone、IPad等)直接與APNS建立長串連。不過向用戶端裝置發送的訊息並不是由APNS產生的,而是在需要發送訊息的使用者自己提供的伺服器(稱為Provider)中產生的,然後Provider將訊息傳送給APNS,最後由APNS將訊息傳送給用戶端裝置。也就是說,訊息最開始由Provider產生,然後Provider將訊息傳送給APNS,最後再由APNS傳送給用戶端裝置。訊息傳遞的過程如圖1所示。
圖1
在發送訊息到用戶端裝置接收到訊息的過程中,始終伴隨這一個令牌的傳送(device token)。要想使用APNS提供Message Service,應用程式需要先向IOS註冊需要提供的一個必要的資訊就是與當前裝置有關的device token,IOS在接收到devicetoken後,會向APNS查詢這個device token是否在APNS上註冊了(所有的IOS裝置在第一次使用時都需要向蘋果伺服器註冊一個帳號,否則無法從AppleStore下載應用,當然更無法使用推送服務了),如果已經註冊,APNS會直接嚮應用程式返回這個devicetoken。應用程式獲得這個devicetoken後,表示APNS已經允許向自己推送訊息了,接著還需要將該device token發送給推送伺服器(Provider)。到這裡應用程式已經成功將自己註冊到APNS中了。現在就可以通過Provider產生要推送的訊息,然後Provider會將訊息發送給APNS伺服器,最後APNS伺服器會直接嚮應用程式發送訊息。這個過程比較複雜,不過看一下圖2的描述就會對這一過程更加瞭解了。每一個流程描述前面的數字表示發送的時間先後順序。
圖2
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/