999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于WebSocket模式的混合移動(dòng)應(yīng)用消息推送研究

2017-11-07 09:11:25馬慶
科技視界 2017年17期

馬慶

【摘 要】隨著移送互聯(lián)網(wǎng)的快速發(fā)展,移動(dòng)智能終端發(fā)生來(lái)巨大的變革,徹底改變了過(guò)彈出一個(gè)窗口通知用戶有事情發(fā)生,通知的內(nèi)容可以是未接電話的提示,可以是日歷的提醒,或者是接收到的彩信。推送功能是最早在Email中被采用的,用來(lái)提示用戶有新的信息。當(dāng)今移動(dòng)互聯(lián)網(wǎng)時(shí)代的智能終端對(duì)于推送功能更加地普及,已經(jīng)不再只是僅僅用在推送郵件了,而更多地用在移動(dòng)終端的APP中了。本文將圍繞 Hybrid App 的 websocket 消息推送進(jìn)行一系列的探索。

【關(guān)鍵詞】WebSocket;消息推送;混合應(yīng)用

中圖分類號(hào): TP311.52 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2017)17-0023-002

Research on Message Push of Hybrid Mobile Application Based on WebSocket Model

MA Qing

(Hunan Software Vocational College,Xiangtan Hunan 411100,China)

【摘 要】With the rapid development of the transfer of the Internet,mobile smart terminal to a huge change, completely changed the pop-up window to inform the user something happened,the contents of the notice can be missed calls,can be reminders of the calendar, or receive To the MMS.Push function is the first in the Email was used to prompt the user to have new information. Today's mobile Internet era of intelligent terminals for the push function is more popular,is no longer just used to push mail,and more used in the mobile terminal APP.This article will be around the Hybrid app websocket message push a series of exploration.

【關(guān)鍵詞】WebSocket;Message push;Hybrid application

0 引言

目前主流的移動(dòng)操作系統(tǒng)(Android、iOS)的 webview 都已經(jīng)支持websocket,所以對(duì)于混合移動(dòng)應(yīng)用,webscoket也將成為消息推送的選擇。混合應(yīng)用一般使用 Cordova之類的中間件,以WebView作為用戶界面層,以 Javascript作為基本邏輯,以及和中間件通訊,再由中間件訪問(wèn)底層 API 的方式,進(jìn)行應(yīng)用開(kāi)發(fā)。

1 移動(dòng)應(yīng)用消息推送一般模式

1.1 使用GCM(Google Cloude Messaging)

Android自帶的推送GCM可以向Android應(yīng)用程序發(fā)送數(shù)據(jù)。它是一個(gè)輕量級(jí)的消息,告訴Android應(yīng)用程序有新的數(shù)據(jù)要從服務(wù)器獲取,或者它可能是一個(gè)消息,其中包含了4KB的payload data(像即時(shí)通訊這類應(yīng)用程序可以直接使用該payload消息)。GCM服務(wù)處理排隊(duì)的消息,并把消息傳遞到目標(biāo)設(shè)備上運(yùn)行的Android應(yīng)用程序。

優(yōu)點(diǎn):Google提供的服務(wù)、原生、簡(jiǎn)單,無(wú)需實(shí)現(xiàn)和部署服務(wù)端。

缺點(diǎn):1)要求Android 2.2以上,對(duì)于不少2.2以前的系統(tǒng)沒(méi)法推送;

2)國(guó)內(nèi)服務(wù)不穩(wěn)定。而且不少國(guó)內(nèi)的終端廠商紛紛把Google的服務(wù)去掉,替換上自己的。

3)需要用戶綁定Google賬號(hào),但不少國(guó)內(nèi)用戶沒(méi)有Google賬號(hào)。

1.2 使用XMPP協(xié)議

XMPP是一種基于XML的協(xié)議,它繼承了在XML環(huán)境中靈活的發(fā)展性,有很強(qiáng)的可擴(kuò)展性。包括上面講的GCM服務(wù)器底層也是采用XMPP協(xié)議封裝的。

優(yōu)點(diǎn):協(xié)議成熟、強(qiáng)大、可擴(kuò)展性強(qiáng)、目前主要應(yīng)用于許多聊天系統(tǒng)中,且已有開(kāi)源的Java版的開(kāi)發(fā)實(shí)例androidpn。

缺點(diǎn):協(xié)議較復(fù)雜、冗余(基于XML)、費(fèi)流量、費(fèi)電,部署硬件成本高。

Androidpn(Android Push Notification)就是基于XMPP開(kāi)源組件的一套整合方案,服務(wù)端基于Openfire、客戶端基于Smack。

1)Androidpn服務(wù)端重啟后客戶端不會(huì)重連,這個(gè)非常悲劇。

2)由于服務(wù)器不保存消息,造成了如果客戶端當(dāng)前離線就收不到消息。

3)Androidpn發(fā)送完消息就不管了,所以沒(méi)有消息回執(zhí)報(bào)表之類,造成沒(méi)法做應(yīng)用后續(xù)的數(shù)據(jù)分析用戶體驗(yàn)的改善,這對(duì)于企業(yè)級(jí)的應(yīng)用是個(gè)致命傷。

XMPP協(xié)議比較費(fèi)電費(fèi)流量,這個(gè)對(duì)當(dāng)前智能機(jī)的消耗太大,在窄帶網(wǎng)絡(luò)和不穩(wěn)定的(手機(jī))網(wǎng)絡(luò)都不是最優(yōu)的選擇。但總體來(lái)說(shuō),XMPP協(xié)議還是比較成熟的。

1.3 使用MQTT協(xié)議

輕量級(jí)的、基于代理的“發(fā)布/訂閱”模式的消息傳輸協(xié)議。

優(yōu)點(diǎn):協(xié)議簡(jiǎn)潔、小巧、可擴(kuò)展性強(qiáng)、省流量、省電,目前已經(jīng)應(yīng)用到企業(yè)領(lǐng)域

缺點(diǎn):不夠成熟、實(shí)現(xiàn)較復(fù)雜、服務(wù)端組件rsmb不開(kāi)源,部署硬件成本較高。endprint

1.4 HTTP輪循方式

定時(shí)向HTTP服務(wù)端接口(Web Service API)獲取最新消息。

優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單、可控性強(qiáng),部署硬件成本低。

缺點(diǎn):實(shí)時(shí)性差。

2 Websocket 接口簡(jiǎn)介

WebSocket 的實(shí)現(xiàn)分為客戶端和服務(wù)端兩部分,客戶端(通常為瀏覽器)發(fā)出 WebSocket 連接請(qǐng)求,服務(wù)端響應(yīng),實(shí)現(xiàn)類似 TCP 握手的動(dòng)作,從而在瀏覽器客戶端和 WebSocket 服務(wù)端之間形成一條 HTTP 長(zhǎng)連接快速通道。兩者之間后續(xù)進(jìn)行直接的數(shù)據(jù)互相傳送,不再需要發(fā)起連接和響應(yīng)。同時(shí)兩者都可以關(guān)閉這個(gè)長(zhǎng)連接。我們正是利用了混合移動(dòng)應(yīng)用的 webview 可以支持 websocket 的這個(gè)特性來(lái)實(shí)現(xiàn)服務(wù)器端對(duì)客戶端的一個(gè)消息推送。Websocket 針對(duì)客戶端而言,性能,資源使用以及及時(shí)性要比傳統(tǒng)的輪詢更好。

3 混合移動(dòng)解決方案

3.1 瀏覽器發(fā)出握手請(qǐng)求

首先瀏覽器以標(biāo)準(zhǔn)的HTTP Get方式向服務(wù)器發(fā)出握手請(qǐng)求,在請(qǐng)求的頭信息中加入了Websocket協(xié)議所需要的一些信息。示例如下:

GET /WSHandler.ashx HTTP/1.1

Connection:Upgrade

Host:localhost:1550

Origin:http://localhost:1550

Sec-WebSocket-Key:A3IIMlEc9ARZWlO9ShrePw==

Sec-WebSocket-Version:13

Upgrade:websocket

然后服務(wù)器響應(yīng)握手請(qǐng)求服務(wù)器在獲得這些頭信息后,經(jīng)過(guò)處理,以HTTP方式進(jìn)行回復(fù),回復(fù)時(shí)也在頭信息的部分加入了Websocket協(xié)議所需要的信息。示例如下:

HTTP/1.1 101 Switching Protocols

Upgrade: Websocket

Sec-WebSocket-Accept lJYdhpEDwO4BMgu0meIY94nJIYs=

Connection: Upgrade

經(jīng)過(guò)這樣的一個(gè)握手過(guò)程之后,瀏覽器與服務(wù)器之間就建立起了一條TCP通道。

數(shù)據(jù)幀在Websocket協(xié)議中,數(shù)據(jù)使用一系列的幀來(lái)傳輸。Websocket協(xié)議有著諸多的優(yōu)點(diǎn):(1)支持SSL,安全性高;(2)整體性能高,無(wú)論是服務(wù)器的負(fù)載還是網(wǎng)絡(luò)帶寬的成本都大大降低;(3)默認(rèn)采用80或443端口進(jìn)行數(shù)據(jù)傳輸,一般不會(huì)被封堵;(4)可以支持跨域連接;(5)在W3C中定義了Javascript API,客戶端編程更加方便。

混合應(yīng)用一般使用 Cordova 之類的中間件,以 WebView 作為用戶界面層,以 Javascript 作為基本邏輯,以及和中間件通訊,再由中間件訪問(wèn)底層 API 的方式,進(jìn)行應(yīng)用開(kāi)發(fā)。開(kāi)發(fā)時(shí)可能不采用或者大部分不采用原生語(yǔ)言,但是卻有所有原生應(yīng)用的特性。而開(kāi)發(fā)消息推送功能時(shí),我們就既可以使用 Native App 的系統(tǒng)自帶推送如 GCM 和 APNS,又可以使用基于 html5 的 websocket 推送。對(duì)于混合應(yīng)用的 websocket 消息推送,其基本原理如下:

Hybrid app websocket由于開(kāi)發(fā)周期短,跨平臺(tái)性好,維護(hù)成本低,一般可以用于混合應(yīng)用的消息推送。一旦推送服務(wù)器出現(xiàn)異常,我們的消息推送將變得非常被動(dòng)。 但是 GCM 和 APNS 也是使用長(zhǎng)連接進(jìn)行消息推送,而且一個(gè)手機(jī)上的所有 app 共用一個(gè)長(zhǎng)連接,對(duì)于手機(jī)性能將會(huì)有極大的幫助。

圖1 Hybrid app websocket 工作流程

4 總結(jié)

隨著手機(jī)性能的不斷改善,hybrid app 的性能幾乎接近原生app的體驗(yàn),最重要的是還可以跨平臺(tái),所以hybrid app越來(lái)越受到開(kāi)發(fā)者的青睞,尤其是前端開(kāi)發(fā)者。他們既能利用熟悉的html5,css3,angular js作為主體開(kāi)發(fā)語(yǔ)言,又能適時(shí)利用Cordova plugin調(diào)用底層的 API,這樣既節(jié)約了開(kāi)發(fā)成本,又能體驗(yàn)原生開(kāi)發(fā)的樂(lè)趣。本文就利用Cordova跨移動(dòng)平臺(tái)框架,開(kāi)發(fā)了一組調(diào)用local notification的android plugin,前端代碼不需要改變,我們只需要編寫iOS端的local notification就可以適配一下ios平臺(tái)。利用這種方法,我們同樣可以擴(kuò)展更多plugin。而websocket作為HTML5的新特性,它不像傳統(tǒng)的輪詢查詢服務(wù)端的方式而是主動(dòng)push的方式向客戶端推送消息,websocket這種長(zhǎng)連接的特性不僅適合消息推送,對(duì)于實(shí)時(shí)在線聊天功能也是非常適合。本文就結(jié)合了websocket和Cordova的特性開(kāi)發(fā)了混合移動(dòng)的消息推送。

【參考文獻(xiàn)】

[1]基于Web服務(wù)的勞動(dòng)保障管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].陳軍.科學(xué)大眾(科學(xué)教育),2012(08).

[2]張楓蕾.移動(dòng)大互聯(lián)時(shí)代 APP營(yíng)銷三重價(jià)值[J].廣告人,2012(02).

[3]基于Web Services的電子圖書(shū)一體化查詢平臺(tái)設(shè)計(jì)[J].杜治波.情報(bào)探索,2012(07).

[4]WebSocket在Web實(shí)時(shí)通信領(lǐng)域的研究[J].李代立,陳榕.電腦知識(shí)與技術(shù),2010(28).

[5]孫清國(guó),朱瑋,劉華軍,張鵬.Web應(yīng)用中的服務(wù)器推送技術(shù)研究綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(11).

[6]Approximate covering detection among content-based subscriptions using space filling curves[J].Zhenhui Shen,Srikanta Tirthapura.Journal of Parallel and Distributed Computing,2012 (12).

[7]Use of RSS feeds to push online content to users[J].Dan Ma.Decision Support Systems,2012(1).

[8]An MID-Based Load Balancing Approach for Topic-Based Pub-Sub Overlay Construction[J].Ruisheng Shi,F(xiàn)uqiang Liu,Yang Zhang,Bo Cheng,Junliang Chen. Tsinghua Science & Technology,2011(6).

[9]A dynamic and fast event matching algorithm for a content-based publish/subscribe information dissemination system in Sensor-Grid[J]. Mohammad Mehedi Hassan,Biao Song,Eui-Nam Huh. The Journal of Supercomputing,2010(3).

[10]An Efficient Publish-subscribe Protocol for Collaborative Content Delivery-Ex-PUSH.Mallick S,Kushwaha D S.2012 International Symposium on Cloud and Services Computing.2012.

[11]Towards Effectively Identifying RESTful Web Services. Zhao Y,Dong L,Lin R, et al. 2014 IEEE International Conference on Web Services, 2014.endprint

主站蜘蛛池模板: 国内精品一区二区在线观看| 中文字幕亚洲电影| 免费一级全黄少妇性色生活片| 特级做a爰片毛片免费69| 99精品视频播放| 国产全黄a一级毛片| AV熟女乱| 四虎免费视频网站| 国产亚洲精品自在线| 9啪在线视频| 亚洲AV成人一区二区三区AV| 国产美女久久久久不卡| 国内毛片视频| 国产午夜福利片在线观看| 亚洲无码高清视频在线观看 | 亚洲国产一成久久精品国产成人综合| 免费Aⅴ片在线观看蜜芽Tⅴ| 最新国产麻豆aⅴ精品无| 欧美翘臀一区二区三区| 国产国语一级毛片| 亚洲成a人片在线观看88| 午夜毛片免费观看视频 | 伊人激情综合网| 久久久受www免费人成| 亚洲成肉网| 制服丝袜在线视频香蕉| 亚洲成a人片77777在线播放| 国产麻豆精品久久一二三| 又粗又硬又大又爽免费视频播放| 国产99热| 四虎影视永久在线精品| a级高清毛片| 中文字幕无码中文字幕有码在线| 日韩av手机在线| 中国美女**毛片录像在线| 亚洲中文字幕无码爆乳| 亚洲国产中文精品va在线播放| 久久精品亚洲专区| 中文字幕调教一区二区视频| 2021国产精品自产拍在线| 国产成人精品一区二区| 国产激情无码一区二区三区免费| 久久精品视频一| 激情五月婷婷综合网| 国产成人精品视频一区二区电影| 欧美在线伊人| 国产精品人成在线播放| 国产精品一老牛影视频| 中文字幕乱妇无码AV在线| 免费在线观看av| 亚洲精品视频免费观看| 欧美亚洲国产精品久久蜜芽| 亚洲精品国产自在现线最新| 色综合综合网| 国产h视频在线观看视频| 久久99国产视频| 一级一级特黄女人精品毛片| 国语少妇高潮| 欧美一级黄色影院| 伊人AV天堂| 99精品视频在线观看免费播放| 狠狠色丁香婷婷| 亚洲欧美日韩另类| 国产www网站| 国产乱子精品一区二区在线观看| 亚洲精品国产首次亮相| 国产黄色免费看| 婷婷丁香在线观看| 午夜激情婷婷| 一本久道久久综合多人| 一本一道波多野结衣一区二区 | 精品五夜婷香蕉国产线看观看| 国产在线观看第二页| 欧美激情伊人| 97国产精品视频自在拍| 免费三A级毛片视频| 片在线无码观看| 免费毛片全部不收费的| 国产拍揄自揄精品视频网站| 福利一区在线| 久久精品丝袜高跟鞋| 日韩免费毛片视频|