• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Web應(yīng)用中的實(shí)時(shí)消息交互技術(shù)

      2017-03-17 22:46:27衣鵬
      電子技術(shù)與軟件工程 2016年16期
      關(guān)鍵詞:輪詢交互技術(shù)服務(wù)器端

      衣鵬

      摘 要

      本文主要介紹了Web實(shí)時(shí)消息交互技術(shù),以及目前在Web應(yīng)用中進(jìn)行實(shí)時(shí)消息交互的一些主流技術(shù)。

      【關(guān)鍵詞】Web 實(shí)時(shí)消息

      隨著Web的發(fā)展,客戶端與服務(wù)端之間的實(shí)時(shí)消息交互成為人們溝通交流的重要方式。比如門戶網(wǎng)站的實(shí)時(shí)新聞、SNS網(wǎng)站的用戶互動(dòng)、企業(yè)網(wǎng)站的在線客服、大宗商品的即時(shí)交易、遠(yuǎn)程設(shè)備的實(shí)時(shí)監(jiān)控等常見的場景都需要用到基于Web的實(shí)時(shí)消息交互技術(shù)。

      1 概述

      Web實(shí)時(shí)消息交互應(yīng)用需要服務(wù)器端實(shí)時(shí)地、主動(dòng)地將后臺出現(xiàn)的變化呈現(xiàn)在客戶端的瀏覽器上,而無需客戶手動(dòng)地去刷新頁面。

      在傳統(tǒng)的HTTP請求/響應(yīng)模式下,客戶端每建立一個(gè)連接都要向服務(wù)器端發(fā)送一個(gè)HTTP請求,當(dāng)收到來自服務(wù)器端的HTTP響應(yīng)后,如果該響應(yīng)完全被發(fā)送或接收,服務(wù)器端就會關(guān)閉該連接。

      2 主流的Web實(shí)時(shí)消息交互技術(shù)

      2.1 客戶端輪詢模式(Polling)

      客戶端通過執(zhí)行網(wǎng)頁中的JS輪詢腳本,經(jīng)由HTTP方式向服務(wù)器端定期循環(huán)的發(fā)送請求,詢問是否有新的消息產(chǎn)生,接收來自服務(wù)器的請求響應(yīng),返回相應(yīng)信息,如果服務(wù)器端沒有響應(yīng),則會在相應(yīng)的指令,關(guān)閉連接,等待后發(fā)送下一個(gè)請求。

      優(yōu)點(diǎn):使用方便,實(shí)現(xiàn)簡單,開發(fā)成本低,無需做過多的更改。

      缺點(diǎn):如果輪詢間隔過長,會導(dǎo)致消息出現(xiàn)延遲,用戶無法及時(shí)接收更新的數(shù)據(jù)。如果輪詢時(shí)間過短,則會導(dǎo)致查詢請求過多,增加網(wǎng)絡(luò)資源消耗,服務(wù)器易產(chǎn)生峰值請求。

      2.2 長輪詢模式(Long-Polling)

      又稱服務(wù)端的輪。它是指當(dāng)客戶端通過執(zhí)行網(wǎng)頁中的JS輪詢腳本,經(jīng)由HTTP方式向服務(wù)器端發(fā)送請求,建立連接后,如果服務(wù)器端沒有新的數(shù)據(jù),就會保持連接,不斷地去查詢后臺消息,等待有效的更新,一旦有新消息產(chǎn)生,服務(wù)器就將消息返回給客戶端。客戶端收到響應(yīng)消息后會立即關(guān)閉鏈接,并發(fā)送新的請求,開始下一次新的輪詢。

      優(yōu)點(diǎn):時(shí)效性強(qiáng),消息能及時(shí)返回客戶端;無消息更新不會頻繁請求,減少了不停地創(chuàng)建、關(guān)閉HTTP請求造成的不必要浪費(fèi)。

      缺點(diǎn):開發(fā)成本高,實(shí)現(xiàn)復(fù)雜,需第三方庫支持;服務(wù)端保持大量連接的維護(hù)開銷大;多個(gè)數(shù)據(jù)發(fā)送會耗費(fèi)大量的服務(wù)器性能;每次產(chǎn)生消息后都需要重新創(chuàng)建連接。

      2.3 基于流的模式( Http Streaming )

      該模式下,客戶端與服務(wù)器端會持續(xù)保持連接,當(dāng)服務(wù)器端有新的消息更新時(shí),服務(wù)器端就會通過該持續(xù)連接源源不斷的將消息返回給客戶端。該模式與前面的長輪詢模式相似,只是不需要多次建立連接。

      優(yōu)點(diǎn):新的消息可以實(shí)時(shí)到達(dá)客戶端;客戶端與服務(wù)器端一次建立連接,持續(xù)有效。

      缺點(diǎn):服務(wù)器端需要保持大量連接,及時(shí)響應(yīng)后臺的消息更新,開銷較大。

      2.4 Server-Sent Events (SSE)

      SSE模式與長輪詢類似,區(qū)別在于SSE的每個(gè)連接不只發(fā)送一個(gè)消息,通常會重用以處理多個(gè)消息。當(dāng)客戶端與服務(wù)器端建立連接后,服務(wù)器端就持續(xù)保持該連接到一個(gè)有效的消息產(chǎn)生,并將該消息返回給客戶端。此時(shí),先前建立的連接并不關(guān)閉,還可以繼續(xù)用于另一個(gè)有效消息的發(fā)送。一旦有新消息準(zhǔn)備好,該連接就會將其發(fā)送回客戶端。

      優(yōu)點(diǎn):基于HTML5標(biāo)準(zhǔn);定義了專用媒體類型text/event-stream;提供了標(biāo)準(zhǔn)JS的客戶端API實(shí)現(xiàn);開發(fā)實(shí)現(xiàn)簡單;一個(gè)連接可發(fā)送多個(gè)數(shù)據(jù)。

      缺點(diǎn):服務(wù)器端只能向客戶端單向推送數(shù)據(jù);主流的IE瀏覽器不支持EventSource。

      2.5 HTML5 Websocket

      WebSocket是一種復(fù)雜的服務(wù)器端雙向傳輸技術(shù)。它基于HTML5標(biāo)準(zhǔn),提供了在客戶端與服務(wù)器端進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù)??蛻舳撕头?wù)器端只需要通過握手動(dòng)作就能迅速建立一條雙向快速通道,兩者就可以隨意向?qū)Ψ桨l(fā)送數(shù)據(jù)。此時(shí),在新的WebSocket連接上的交互就不再是基于HTTP協(xié)議了。該技術(shù)可以用于在兩個(gè)方向上快速交互小塊數(shù)據(jù)的應(yīng)用場景中。

      優(yōu)點(diǎn):基于最新的HTML5標(biāo)準(zhǔn);可以實(shí)現(xiàn)真正的實(shí)時(shí)通訊和雙向交互;大量節(jié)約服務(wù)器資源和帶寬。

      缺點(diǎn):客戶端需要支持HTML5;開發(fā)難度較高,需要專門處理WebSocket協(xié)議。

      2.6 Flash XMLSocket

      該技術(shù)在頁面中內(nèi)嵌一個(gè)使用了XMLSocket類的Flash程序。JavaScript通過調(diào)用此Flash程序提供的Socket接口與服務(wù)器端的Socket接口進(jìn)行通信。JavaScript在收到服務(wù)器端以XML格式傳送的信息后可以很容易地控制HTML頁面的顯示。

      優(yōu)點(diǎn):增強(qiáng)了客戶端的處理能力;實(shí)現(xiàn)真正的即時(shí)而非偽即時(shí)通信。

      缺點(diǎn):客戶端必須安裝Flash插件;非HTTP協(xié)議;XMLSocket類不能自動(dòng)穿過防火墻;需要設(shè)置一個(gè)通信端口。

      2.7 Comet

      Comet是一種基于HTTP長連接、無須在客戶端安裝插件的“服務(wù)器推”技術(shù)。該技術(shù)可使服務(wù)器將更新的信息實(shí)時(shí)地傳送到客戶端,而無須客戶端發(fā)出請求。目前有長輪詢和Iframe流兩種實(shí)現(xiàn)方式。長輪詢是在建立連接以后保持,直到服務(wù)器推送數(shù)據(jù)后再關(guān)閉的方式。Iframe流方式是在頁面中插入一個(gè)隱藏的Iframe,利用其src屬性在服務(wù)器和客戶端之間創(chuàng)建一條長鏈接,服務(wù)器向Iframe傳輸數(shù)據(jù),來實(shí)時(shí)更新頁面。

      優(yōu)點(diǎn):消息即時(shí)到達(dá),不發(fā)送無用請求。

      缺點(diǎn):服務(wù)器端維持長連接會增加網(wǎng)絡(luò)開銷。

      3 結(jié)語

      實(shí)時(shí)消息技術(shù)在互聯(lián)網(wǎng)中的應(yīng)用越來越廣,涵蓋的內(nèi)容也越來越多,我們在此僅做概略性的介紹。在實(shí)際應(yīng)用中,每種業(yè)務(wù)場景都要考慮各方面的細(xì)節(jié),具體問題具體對待,需要大家在實(shí)際的開發(fā)應(yīng)用中見仁見智了。

      參考文獻(xiàn)

      [1]韋伯,帕拉斯泰迪斯,魯濱遜.REST實(shí)戰(zhàn)[M].南京:東南大學(xué)出版社,2011.

      [2]Darren Cook.Data Push Apps with HTML5 SSE[M].O'Reilly Media,2014.

      作者單位

      七一三七五部隊(duì) 山東省濰坊市 262600

      猜你喜歡
      輪詢交互技術(shù)服務(wù)器端
      體感交互技術(shù)在腦卒中康復(fù)中的應(yīng)用
      虛擬交互技術(shù)系統(tǒng)的優(yōu)勢與應(yīng)用分析
      科技傳播(2019年23期)2020-01-18 07:58:02
      基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計(jì)?
      智能語音交互技術(shù)在媒體的應(yīng)用和前景
      傳媒評論(2018年6期)2018-08-29 01:14:38
      VR交互技術(shù)在中小學(xué)拓展課程中的應(yīng)用
      流行色(2018年5期)2018-08-27 01:01:44
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      依托站點(diǎn)狀態(tài)的兩級輪詢控制系統(tǒng)時(shí)延特性分析
      利用時(shí)間輪詢方式操作DDR3實(shí)現(xiàn)多模式下數(shù)據(jù)重排
      在Windows中安裝OpenVPN
      網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
      和田县| 时尚| 贵德县| 关岭| 海丰县| 平安县| 临桂县| 青冈县| 遵义县| 湘西| 新郑市| 五台县| 乌恰县| 宁陵县| 邢台市| 德阳市| 富锦市| 田东县| 清镇市| 五台县| 雅江县| 徐闻县| 玛曲县| 公主岭市| 成安县| 永清县| 平罗县| 蓬溪县| 宁都县| 尼玛县| 蒲江县| 怀柔区| 旌德县| 遂平县| 微博| 金塔县| 铜鼓县| 威宁| 邯郸市| 吉木乃县| 辉县市|