亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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è)窗口通知用戶(hù)有事情發(fā)生,通知的內(nèi)容可以是未接電話的提示,可以是日歷的提醒,或者是接收到的彩信。推送功能是最早在Email中被采用的,用來(lái)提示用戶(hù)有新的信息。當(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)用

        中圖分類(lèi)號(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之類(lèi)的中間件,以WebView作為用戶(hù)界面層,以 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í)通訊這類(lèi)應(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)定。而且不少?lài)?guó)內(nèi)的終端廠商紛紛把Google的服務(wù)去掉,替換上自己的。

        3)需要用戶(hù)綁定Google賬號(hào),但不少?lài)?guó)內(nèi)用戶(hù)沒(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、客戶(hù)端基于Smack。

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

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

        3)Androidpn發(fā)送完消息就不管了,所以沒(méi)有消息回執(zhí)報(bào)表之類(lèi),造成沒(méi)法做應(yīng)用后續(xù)的數(shù)據(jù)分析用戶(hù)體驗(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)分為客戶(hù)端和服務(wù)端兩部分,客戶(hù)端(通常為瀏覽器)發(fā)出 WebSocket 連接請(qǐng)求,服務(wù)端響應(yīng),實(shí)現(xiàn)類(lèi)似 TCP 握手的動(dòng)作,從而在瀏覽器客戶(hù)端和 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ì)客戶(hù)端的一個(gè)消息推送。Websocket 針對(duì)客戶(hù)端而言,性能,資源使用以及及時(shí)性要比傳統(tǒng)的輪詢(xún)更好。

        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,客戶(hù)端編程更加方便。

        混合應(yīng)用一般使用 Cordova 之類(lèi)的中間件,以 WebView 作為用戶(hù)界面層,以 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,前端代碼不需要改變,我們只需要編寫(xiě)iOS端的local notification就可以適配一下ios平臺(tái)。利用這種方法,我們同樣可以擴(kuò)展更多plugin。而websocket作為HTML5的新特性,它不像傳統(tǒng)的輪詢(xún)查詢(xún)服務(wù)端的方式而是主動(dòng)push的方式向客戶(hù)端推送消息,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)銷(xiāo)三重價(jià)值[J].廣告人,2012(02).

        [3]基于Web Services的電子圖書(shū)一體化查詢(xún)平臺(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

        亚洲精品无码久久久| 一个人午夜观看在线中文字幕| 亚洲av网站在线观看一页| 狠狠躁夜夜躁人人躁婷婷视频| 蜜臀av免费一区二区三区| 好爽~又到高潮了毛片视频| 99久久婷婷亚洲综合国产| 亚洲人成精品久久久久| 男女肉粗暴进来120秒动态图| 久久中文字幕久久久久| 人妻有码中文字幕在线| 欧美激欧美啪啪片| 国产精品高潮呻吟av久久4虎 | 最新国产精品亚洲二区| 一区二区三区成人av| 久久精品99国产精品日本| 久久综合九色综合网站| 久久久国产精品免费无卡顿| 午夜视频手机在线免费观看| 亚洲精品乱码久久久久蜜桃| 欧美人与动人物姣配xxxx| 不卡a v无码在线| 国产亚洲一本二本三道| 亚洲精品色婷婷在线影院| 精品乱码一区二区三区四区| 青青草久热手机在线视频观看| 日韩一区av二区三区| 人人爽久久涩噜噜噜av| 国产乱人伦偷精品视频免| av网址在线一区二区| 亚洲av综合av一区| 亚洲福利视频一区| 国产丝袜美腿诱惑在线观看| 国产一级一级内射视频| 亚洲色大成网站www久久九| 亚洲一区区| 日本免费精品一区二区| 屁屁影院ccyy备用地址| 久久久久亚洲av成人网址| 白白色日韩免费在线观看| 国产片精品av在线观看夜色|