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

        ?

        HTML5中的WebSocket 技術(shù)淺析

        2016-05-14 21:02:54鄭志明林鵬濤
        知音勵志·社科版 2016年6期

        鄭志明 林鵬濤

        摘 要 本文首先對WebSocket的定義及相關(guān)技術(shù)進(jìn)行了簡要的說明,并與傳統(tǒng)的HTTP協(xié)議進(jìn)行了簡要對比,通過一個例子闡述了WebSocket技術(shù)的優(yōu)點(diǎn)以及它的主要應(yīng)用領(lǐng)域,最后簡要的描述了WebSocket的使用方法。

        【關(guān)鍵詞】WebSocket;HTTP;HTML5

        隨著Web技術(shù)和移動互聯(lián)網(wǎng)的快速發(fā)展,HTML5越來越被人們所關(guān)注并受到軟件開發(fā)人員的喜愛,可以這么說HTML5是近十年來Web開發(fā)標(biāo)準(zhǔn)過程中最巨大的飛躍。相對以往的版本,HTML5并非只是用來表示W(wǎng)eb文件中的內(nèi)容,它的最新使命是將Web帶入一個更加成熟的應(yīng)用平臺。作為下一代的Web標(biāo)準(zhǔn),HTML5擁有許多引人注目的新特性,如Canvas、本地存儲、多媒體編程接口、WebSocket 等等。這其中有“Web的TCP”之稱的WebSocket 格外吸引Web開發(fā)人員的注意。

        1 WebSocket是什么?

        WebSocket是HTML5規(guī)范中一種新的瀏覽器與服務(wù)器之間進(jìn)行通信的協(xié)議規(guī)范,它的主要功能是為了實(shí)現(xiàn)了瀏覽器與服務(wù)器之間的全雙工通信。通?;贐/S結(jié)構(gòu)的程序都是通過HTTP協(xié)議來進(jìn)行通信的,而HTTP協(xié)議僅能實(shí)現(xiàn)單向的通信,即請求只能從瀏覽器發(fā)出,服務(wù)器被動的接收請求后進(jìn)行響應(yīng)。

        1.1 WebSocket是一種協(xié)議

        WebSocket 協(xié)議本質(zhì)上是一個基于TCP的協(xié)議。為了建立一個 WebSocket 連接,瀏覽器首先要向服務(wù)器發(fā)起一個HTTP請求,這個請求和通常的HTTP請求有所不同,它還包含了一些附加的頭信息,其中附加頭信息“Upgrade: WebSocket”說明這是一個協(xié)議升級的HTTP請求,服務(wù)器解析到這些附加的請求頭信息后產(chǎn)生響應(yīng)信息返回給客戶端,瀏覽器和服務(wù)器端的WebSocket連接就建立起來了,一旦這個連接建立,這個連接將會持續(xù)的存在直到瀏覽器或者服務(wù)器端的某一方主動的關(guān)閉連接,雙方就可以通過這個連接通道自由的傳遞數(shù)據(jù)。

        1.2 WebSocket協(xié)議與傳統(tǒng)的HTTP協(xié)議的區(qū)別與聯(lián)系

        WebSocket協(xié)議與傳統(tǒng)的HTTP協(xié)議即有區(qū)別也有聯(lián)系,主要表現(xiàn)在以下向個方面:

        (1)WebSocket是一種雙向通信協(xié)議,在建立連接后,WebSocket服務(wù)器和瀏覽器都能主動的向?qū)Ψ桨l(fā)送或接收數(shù)據(jù);而HTTP協(xié)議只是一種單向的通信協(xié)議,建立連接后服務(wù)器不能主動的向?yàn)g覽器發(fā)送數(shù)據(jù),它只有在接收到瀏覽器的請求后才能對瀏覽器發(fā)送數(shù)據(jù)。

        (2)WebSocket通信首先需要通過握手連接,于TCP協(xié)議類似,TCP連接首先也需要進(jìn)行客戶端和服務(wù)器端的握手連接,握手連接成功后才能進(jìn)行相互通信;而HTTP協(xié)議不需要進(jìn)行握手連接。

        (3)WebSocket與HTTP協(xié)議都是基于TCP協(xié)議的,它們都屬于應(yīng)用層的協(xié)議,所以他們也都是可靠的協(xié)議。兩個協(xié)議還有密切的關(guān)聯(lián),當(dāng)WebSocket在建立握手連接時,數(shù)據(jù)是通過HTTP協(xié)議傳輸?shù)?,但是在握手連接建立之后,真正的數(shù)據(jù)傳輸階段就不再需要HTTP協(xié)議的參與了。

        2 為什么要使用WebSocket?

        為了說明WebSocket的優(yōu)勢是什么,也就是說明我們?yōu)槭裁匆褂肳ebSocket,我們通過一個例子來解釋。在WebSocket未出現(xiàn)的時候,程序員如果想通過HTTP這種無狀態(tài)連接來實(shí)現(xiàn)即時通訊類似的功能,通常有以下幾種方法:

        2.1 Ajax輪詢

        它的原理非常簡單,就是通過Ajax定時向服務(wù)器發(fā)送請求,詢問服務(wù)器是否有最新的消息,服務(wù)器如果有就發(fā)送最新的信息,如果沒有就什么事也不做。這種方式的缺點(diǎn)是會生成許多無用的請求,造成網(wǎng)絡(luò)無謂的數(shù)據(jù)傳輸,因此這是一種比較低效的方法。

        2.2 長輪詢

        這是一種對Ajax輪詢改進(jìn)和提高的方法,主要是為了降低網(wǎng)絡(luò)上無謂傳輸。當(dāng)瀏覽器請求服務(wù)器時,如果服務(wù)器端沒有數(shù)據(jù)更新的時候,連接會保持一段時間周期直到數(shù)據(jù)或狀態(tài)有所改變或者時間過期,通過這種機(jī)制來減少瀏覽器和服務(wù)器之間無謂的交互。如果服務(wù)端的數(shù)據(jù)更新很頻繁,相比Ajax輪詢這種方法也沒有本質(zhì)上的性能提高。

        如何解決類似即時通訊這種實(shí)時問題了,如果還是通過HTTP這種無狀態(tài)的協(xié)議來解決這類問題,是沒有什么好的辦法的,于是人們迫切希望有一種能比HTTP無狀態(tài)協(xié)議更好的通信協(xié)議,這種通信協(xié)議可以實(shí)現(xiàn)瀏覽器和服務(wù)器雙向的通信,服務(wù)器不再是被動的數(shù)據(jù)接收方,它也可以變?yōu)榱酥鲃拥臄?shù)據(jù)發(fā)送方。在HTML5規(guī)范中,它們把這種通信協(xié)議稱為:WebSocket。

        3 WebSocket的主要應(yīng)用領(lǐng)域

        根據(jù)之前我們的討論,我們可以得知WebSocket在應(yīng)用數(shù)據(jù)要進(jìn)行實(shí)時的更新時有先天的優(yōu)勢,這是WebSocket產(chǎn)生的主要原因,也將是WebSocket的主要應(yīng)用方向。它的應(yīng)用領(lǐng)域非常多,比如:社交訂閱、多玩家游戲、多媒體即時通信、協(xié)同編輯/編程、股票基金報(bào)價、在線教育、體育實(shí)況更新等。

        4 如何使用WebSocket?

        使用WebSocket非常簡單,它與使用HTTP協(xié)議與服務(wù)器建立請求連接還是有區(qū)別的。HTML5中規(guī)范中說明WebSocket的連接建立在瀏覽器中可以通過Javascript提供的一組API來進(jìn)行。這組API的使用也非常簡單,簡單的使用如圖1所示。

        而在服務(wù)器端中也有很多實(shí)現(xiàn)了WebSocket規(guī)范的技術(shù),以JAVAEE來說,從JAVAEE7.0開始就已經(jīng)對WebSocket提供了支持,讀者只需根據(jù)其接口要求繼承相關(guān)類并覆寫相關(guān)方法就可以完成WebSocket服務(wù)器端的建立。

        5 結(jié)語

        本文通過什么是WebSocket?、為什么要使用WebSocket?、怎樣使用WebSocket?三個問題的解答為讀者簡要介紹了WebSocket的基本內(nèi)容。雖然WebSocket 的優(yōu)勢非常明顯,應(yīng)用領(lǐng)域非常多,但是我們也應(yīng)該看到它也有一定的局限性。

        (1)當(dāng)前WebSocket 規(guī)范目前還處于草案階段,也就是它的規(guī)范和API還是有變動的可能。

        (2)當(dāng)前,和其他的主流瀏覽器相比,比如谷歌的Chrome、火狐的Firefox瀏覽器,作為占市場份額最大的微軟IE瀏覽器對HTML5的支持是相對比較差的,這也是我們在構(gòu)建Web應(yīng)用時候必須要考慮的一個問題。

        所以我們迫切希望WebSocket能盡快出臺正式的規(guī)范,也希望所有瀏覽器都能完全的支持HTML5的規(guī)范,這也是廣大程序員共同的愿望。相信這一天就會是不遠(yuǎn)的明天。

        作者單位

        贛南師范大學(xué)科技學(xué)院 江西省贛州市 34100

        蜜桃成人精品一区二区三区| 四虎成人精品无码永久在线| 日韩中文在线视频| 国产精品久久夜伦鲁鲁| 蜜臀av一区二区三区免费观看| 日本一区二区三区爆乳| 国产在线精品欧美日韩电影| 男女视频在线一区二区| 亚洲一区免费视频看看| 肉色丝袜足j视频国产| 激情内射亚州一区二区三区爱妻| 国产乱色国产精品免费视频| 玖玖资源网站最新网站| 日韩a级精品一区二区| 国产精品自在线拍国产手机版| 精品亚洲日韩国产一二三区亚洲| 亚洲美女主播一区二区| 亚洲伦理第一页中文字幕| 亚洲综合欧美在线一区在线播放| 国产日韩欧美网站| 日韩av综合色区人妻| 亚洲av综合色区无码另类小说| 亚洲在战AV极品无码| 国产丝袜美腿在线播放| 久久久久久九九99精品| 色婷婷七月| 天堂av中文在线官网| 国产激情久久久久久熟女老人| 中文字幕精品一二三四五六七八| 久久这里只精品国产2| 亚洲一区二区三区免费的视频| 亚洲熟妇无码av在线播放| 放荡的闷骚娇妻h| 色偷偷av一区二区三区人妖| 亚洲天堂二区三区三州| 美女视频黄的全免费视频网站| 中文字幕乱偷乱码亚洲| 国产夫妻精品自拍视频| 国产啪亚洲国产精品无码 | 国产a级午夜毛片| 免费人成网在线观看品观网|