亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android、iOS和Windows Phone中的推送技術詳解

2020-04-11 11:40:14
字體:
來源:轉載
供稿:網友

推送并不是什么新技術,這種技術在互聯網時代就已經很流行了。只是隨著進入移動互聯網時代,推送技術顯得更加重要。因為在智能手機中,推送從某種程度上,可以取代使用多年的短信,而且與短信相比,還可以向用戶展示更多的信息(如圖像、表格、聲音等)。

推送技術的實現通常會使用服務端向客戶端推送消息的方式。也就是說客戶端通過用戶名、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所示。

在發送消息到客戶端設備接收到消息的過程中,始終伴隨這一個令牌的傳送(device token)。要想使用APNS提供消息服務,應用程序需要先向IOS注冊需要提供的一個必要的信息就是與當前設備有關的device token,IOS在接收到devicetoken后,會向APNS查詢這個device token是否在APNS上注冊了(所有的IOS設備在第一次使用時都需要向蘋果服務器注冊一個賬號,否則無法從AppleStore下載應用,當然更無法使用推送服務了),如果已經注冊,APNS會直接向應用程序返回這個devicetoken。應用程序獲得這個devicetoken后,表示APNS已經允許向自己推送消息了,接著還需要將該device token發送給推送服務器(Provider)。到這里應用程序已經成功將自己注冊到APNS中了?,F在就可以通過Provider產生要推送的消息,然后Provider會將消息發送給APNS服務器,最后APNS服務器會直接向應用程序發送消息。這個過程比較復雜,不過看一下圖2的描述就會對這一過程更加了解了。每一個流程描述前面的數字表示發送的時間先后順序。

二、Windows Phone的推送技術

微軟為Window Phone提供的推送方案與IOS類似,也需要自己準備推送服務器(可以稱為Cloud Service)。只是表示設備的ID變成了Uri。在Window Phone中有一個Push Client Service(PCS)。所有需要推送服務的應用程序都需要與Push Client Service通信。下面是Window Phone推送的基本步驟,讀者可以與圖3對照來看這一過程。

第1步:應用程序會向Push Client Service請求一個Push Notification URI(①)。

第2步:如果當前Window Phone設備已經在微軟服務器注冊了,Push Client Service會從MPNS(Microsoft Push Notification Service ,微軟推送通知服務)獲取Push Notification URI,并返回給應用程序,表示推送服務可用(②和③)。

第3步:應用程序需要將Push Notification URI發送給自己的推送服務器(Cloud Service)(④)。

第4步:如果需要推送消息,Cloud Service會將消息發送到MPNS,然后MPNS會將消息發送給Push Client Service,最后由Push Client Service將消息傳送給應用程序(⑤、⑥和③)。

三、Android的推送方案

Android的推送方案就比較多了,也比較亂。例如,有Google官方提供的C2DM(Android Cloud to Device Messaging);第三方的推送服務(如極光推送);還有通過各種協議實現的推送服務端程序(如AndroidPN),用戶通過這些服務端程序可以搭建自己的推送服務器。這些推送技術會在本節后面的部分詳細介紹,本節先來介紹一下Android中經常使用的各種推送技術。當然,這些推送技術也能用于其它的移動設備,但由于Android的官方推送服務(C2DM)在國內使用上有一些問題,所以基于Android的第三方推送服務較其它系統多,因此這里主要針對Android來介紹。

通常推送技術會使用如下兩種方式實現。

1. 輪詢(Pull)方式

2. 持久連接方式(服務端Push方式)

輪詢方式就是客戶端以一定的時間間隔不斷查詢服務端是否有新的消息。這種方式必須自己實現與服務器之間的通信機制,例如消息隊列等。而且還要考慮輪詢的頻率,如果太慢可能導致某些消息的延遲,如果太快,則會大量消耗網絡帶寬和電池。所以大多數推送服務都不會使用輪詢方式。

持久連接方式也就是Push方 式,對于客戶端來說,是一種被動的方式,而主動權在服務端,當有消息時,服務端會向所有注冊到推送服務器的客戶端推送消息。這種推送方式的好處是可以保證 實時性,而且客戶端實現簡單。當然,也會有不足,例如,如果大量的客戶端與服務端保持長連接時,會消耗服務器的資源。不過在未推送消息時,這些長連接就成 了空閑連接,通常這種連接主要消耗的是內存資源。例如,200萬用戶可能會消耗數十GB的內存。因此搭建這種推送機制時要使用性能好的服務器。

持久連接的實現有很多方式,例如,可以使用XMPP作為通信協議。XMPP的主要優勢是協議成熟、強大,可擴展性強。XMPP更多地用于IM系統中,后面要介紹的AndroidPN也是用了XMPP協議。

XMPP也有明顯的缺點,例如,協議很復雜,如果吃透XMPP協議可能需要很長時間,還有就是由于XMPP是基于XML的,從而造成了數據冗余、這樣會造成移動設備費流量、耗電等弊病。

除了XMPP,還可以使用MQTT協議,這種協議的主要優勢是簡潔、小巧、可擴展性強,從而帶來了省流量、省電等優點,而且有C++版的服務端組件rsmb。缺點是協議不夠成熟,而且實現較復雜,而且rsmb不開源,部署硬件的成本較高。

盡管C2DM服務在國內可能不太穩定或有一些地區不可用,但還是有必要介紹一下C2DM的原理。不過對于在國內使用的應用最好使用第三方的推送服務,或自己假設推送服務器。

C2DM和IOS的APNS以及Window Phone的MPNS大同小異。還需要自己準備一臺推送服務器,并通過如下步驟實現消息的推送。

第1步:移動設備上的C2DM服務需要與Google官方的C2DM服務器交互,驗證當前設備是否在C2DM服務器上注冊了,如果已經注冊,C2DM服務器會返回一個注冊ID給客戶端的C2DM服務。(①和②)

第2步:客戶端的C2DM服務會與自己的推送服務器交互,將賬號和C2DM服務器返回的注冊ID傳給推送服務器。(③)

第3步:如果要推送消息,推送服務器會將注冊ID和要推送的消息先發送到C2DM服務器,然后C2DM服務器會直接將消息推送給客戶端(手機、平板電腦的設備)(④和⑤)。

讀者可以對照圖4來理解這3個步驟。

除了使用官方的推送方案外,現在國內涌現出多個第三方的推送方案,例如,極光推送(JPush)、百度推送等。讀者也可以用一下,這些同時通常是免費的(可能推送多媒體數據需要收費)。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲黄色成人网| 国产精品在线看| 日韩黄色av网站| 亚洲精品小视频在线观看| 欧美电影在线观看完整版| 久久久久久久久综合| 欧美综合激情网| 黄色成人在线播放| 欧美日韩午夜剧场| 一区二区三区久久精品| 国产精品视频白浆免费视频| 国产免费久久av| 欧美性理论片在线观看片免费| 热99在线视频| 国产91精品视频在线观看| 日韩色av导航| 欧美极品少妇xxxxx| 日韩av在线精品| 日韩电影视频免费| 亚洲精品wwwww| 欧美激情中文字幕乱码免费| 精品二区三区线观看| 国产情人节一区| 午夜精品久久久久久久久久久久久| 欧美天堂在线观看| 国产免费久久av| 日韩美女在线观看一区| 色狠狠久久aa北条麻妃| 久久国产精品视频| www.亚洲免费视频| 国产精品视频免费在线观看| 国产精品专区一| 久久在线免费视频| 成人激情在线观看| 日韩在线观看网址| 在线播放日韩精品| 成人黄色网免费| 8x海外华人永久免费日韩内陆视频| 成人免费大片黄在线播放| 亚洲精品小视频在线观看| 欧美孕妇孕交黑巨大网站| 欧美成人在线影院| 日韩大片免费观看视频播放| 自拍视频国产精品| 国产情人节一区| 97久久精品在线| 日韩中文字幕在线免费观看| 国产精品久久久久久久久久| 欧美午夜性色大片在线观看| 国产欧美日韩专区发布| xxav国产精品美女主播| 亚洲精品久久久久久久久久久久久| 欧美精品日韩www.p站| 亚洲剧情一区二区| 国产精品久久久久久亚洲调教| 在线观看精品国产视频| 国产一区二区动漫| 国产精品国产自产拍高清av水多| 日韩电影中文字幕在线观看| 欧美激情一区二区久久久| 草民午夜欧美限制a级福利片| 午夜精品在线观看| 亚洲欧美综合另类中字| 亚洲精品理论电影| 日本精品视频在线| 亚洲欧美制服综合另类| 51午夜精品视频| 国产视频久久久| 久久婷婷国产麻豆91天堂| 久久精品国产2020观看福利| 亚洲国产精品久久久久久| 中文字幕亚洲第一| 欧美日韩精品中文字幕| www.欧美视频| 色黄久久久久久| 日韩精品视频在线| 97国产精品免费视频| 亚洲成人网在线| 国产精品视频在线观看| 中文字幕亚洲一区在线观看| 亚洲999一在线观看www| 欧美性猛交xxxx乱大交3| 欧美肥老太性生活视频| 欧美日韩国产丝袜另类| 欧美疯狂性受xxxxx另类| 国产精品日日做人人爱| 日韩视频免费中文字幕| 欧美亚洲国产精品| 青青久久aⅴ北条麻妃| 欧美成人午夜激情视频| 欧美专区在线播放| 欧美日韩美女视频| 亚洲亚裔videos黑人hd| 亚洲一区二区三区成人在线视频精品| 91精品国产亚洲| 久久99热精品这里久久精品| 国产精品福利无圣光在线一区| 欧美网站在线观看| 91精品免费久久久久久久久| 亚洲精品久久在线| 中文字幕欧美亚洲| 日本成人激情视频| 国产丝袜精品第一页| 欧美精品久久久久久久久久| 国产成人精品av在线| 91影视免费在线观看| 一个色综合导航| 国内成人精品一区| 欧美黑人一区二区三区| 尤物九九久久国产精品的分类| 欧美高清视频免费观看| 91在线播放国产| 成人黄色大片在线免费观看| 欧美亚洲免费电影| 最好看的2019年中文视频| 欧美一级免费看| 日韩在线播放视频| 亚洲欧美日韩视频一区| 亚洲成人中文字幕| 亚洲有声小说3d| 国产欧美精品在线播放| 欧美精品在线视频观看| 欧美一区二区色| 国产欧美亚洲视频| 亚洲欧美一区二区三区在线| 亲爱的老师9免费观看全集电视剧| 欧美性做爰毛片| 久久久久久美女| 亚洲欧美综合另类中字| 日韩中文字幕在线精品| 欧美激情喷水视频| 欧美激情手机在线视频| 国产成人精品午夜| 欧美激情久久久久| 大桥未久av一区二区三区| 久久久久久97| 色综合视频网站| 久久精品视频中文字幕| 久久久久北条麻妃免费看| 中文字幕亚洲字幕| 国内精品一区二区三区| 91免费人成网站在线观看18| 性欧美在线看片a免费观看| 富二代精品短视频| 欧美视频在线观看免费网址| 精品性高朝久久久久久久| 午夜免费在线观看精品视频| 亚洲欧洲第一视频| 中文字幕精品一区二区精品| 欧美成人在线免费| 亚洲欧美三级在线| 色无极亚洲影院| 尤物yw午夜国产精品视频明星| 亚洲欧美激情一区| xxx成人少妇69| 亚洲精品自拍偷拍| 亚洲影院在线看| 亚洲成年网站在线观看| 国产精品久久久久久av福利| 精品成人国产在线观看男人呻吟| 色老头一区二区三区在线观看| 久久99久国产精品黄毛片入口| 国产欧美日韩亚洲精品| 亚洲精品电影在线|