亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于WebSocket模式的混合移動應用消息推送研究

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

        馬慶

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

        【關鍵詞】WebSocket;消息推送;混合應用

        中圖分類號: TP311.52 文獻標識碼: A 文章編號: 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.

        【關鍵詞】WebSocket;Message push;Hybrid application

        0 引言

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

        1 移動應用消息推送一般模式

        1.1 使用GCM(Google Cloude Messaging)

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

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

        缺點:1)要求Android 2.2以上,對于不少2.2以前的系統(tǒng)沒法推送;

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

        3)需要用戶綁定Google賬號,但不少國內用戶沒有Google賬號。

        1.2 使用XMPP協(xié)議

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

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

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

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

        1)Androidpn服務端重啟后客戶端不會重連,這個非常悲劇。

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

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

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

        1.3 使用MQTT協(xié)議

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

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

        缺點:不夠成熟、實現(xiàn)較復雜、服務端組件rsmb不開源,部署硬件成本較高。endprint

        1.4 HTTP輪循方式

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

        優(yōu)點:實現(xiàn)簡單、可控性強,部署硬件成本低。

        缺點:實時性差。

        2 Websocket 接口簡介

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

        3 混合移動解決方案

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

        首先瀏覽器以標準的HTTP Get方式向服務器發(fā)出握手請求,在請求的頭信息中加入了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

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

        HTTP/1.1 101 Switching Protocols

        Upgrade: Websocket

        Sec-WebSocket-Accept lJYdhpEDwO4BMgu0meIY94nJIYs=

        Connection: Upgrade

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

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

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

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

        圖1 Hybrid app websocket 工作流程

        4 總結

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

        【參考文獻】

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

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

        [3]基于Web Services的電子圖書一體化查詢平臺設計[J].杜治波.情報探索,2012(07).

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

        [5]孫清國,朱瑋,劉華軍,張鵬.Web應用中的服務器推送技術研究綜述[J].計算機系統(tǒ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

        久久99热精品免费观看欧美| 把女的下面扒开添视频| 国产免费av片在线观看| 免费看操片| 日韩精品不卡一区二区三区| 日韩人妻系列在线观看| 18禁成人黄网站免费观看| 俺来也俺去啦久久综合网| 久久精品国产久精国产69| 91久久国产香蕉熟女线看| 免费看又色又爽又黄的国产软件| 久久无码av三级| 中文字幕大乳少妇| 少妇下面好紧好多水真爽| 国产精品久久久久久一区二区三区| 久久久久亚洲av无码a片软件| 成人精品免费av不卡在线观看| 亚洲第一页视频在线观看| 狠狠躁日日躁夜夜躁2020| 欧美黑人又粗又大久久久| 免费国产在线精品三区| 亚洲国产精品高清在线| 国产裸体xxxx视频在线播放| 国产av成人精品播放| 日韩熟女精品一区二区三区视频| 日韩精品无码一区二区三区| 天天躁狠狠躁狠狠躁夜夜躁| 国产在线欧美日韩一区二区 | 色男色女午夜福利影院| 医院人妻闷声隔着帘子被中出| 少妇人妻在线视频| 色综合久久五月天久久久| 美女用丝袜脚玩我下面| 日本老熟妇50岁丰满| 一本大道久久东京热无码av| 精品人妻av中文字幕乱| 18禁黄污吃奶免费看网站| 四虎精品视频| 亚洲一区有码在线观看| 电影内射视频免费观看| 抽搐一进一出试看60秒体验区|