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

HTML5中的WebSocket 技術淺析

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

鄭志明 林鵬濤

摘 要 本文首先對WebSocket的定義及相關技術進行了簡要的說明,并與傳統的HTTP協議進行了簡要對比,通過一個例子闡述了WebSocket技術的優點以及它的主要應用領域,最后簡要的描述了WebSocket的使用方法。

【關鍵詞】WebSocket;HTTP;HTML5

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

1 WebSocket是什么?

WebSocket是HTML5規范中一種新的瀏覽器與服務器之間進行通信的協議規范,它的主要功能是為了實現了瀏覽器與服務器之間的全雙工通信。通常基于B/S結構的程序都是通過HTTP協議來進行通信的,而HTTP協議僅能實現單向的通信,即請求只能從瀏覽器發出,服務器被動的接收請求后進行響應。

1.1 WebSocket是一種協議

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

1.2 WebSocket協議與傳統的HTTP協議的區別與聯系

WebSocket協議與傳統的HTTP協議即有區別也有聯系,主要表現在以下向個方面:

(1)WebSocket是一種雙向通信協議,在建立連接后,WebSocket服務器和瀏覽器都能主動的向對方發送或接收數據;而HTTP協議只是一種單向的通信協議,建立連接后服務器不能主動的向瀏覽器發送數據,它只有在接收到瀏覽器的請求后才能對瀏覽器發送數據。

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

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

2 為什么要使用WebSocket?

為了說明WebSocket的優勢是什么,也就是說明我們為什么要使用WebSocket,我們通過一個例子來解釋。在WebSocket未出現的時候,程序員如果想通過HTTP這種無狀態連接來實現即時通訊類似的功能,通常有以下幾種方法:

2.1 Ajax輪詢

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

2.2 長輪詢

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

如何解決類似即時通訊這種實時問題了,如果還是通過HTTP這種無狀態的協議來解決這類問題,是沒有什么好的辦法的,于是人們迫切希望有一種能比HTTP無狀態協議更好的通信協議,這種通信協議可以實現瀏覽器和服務器雙向的通信,服務器不再是被動的數據接收方,它也可以變為了主動的數據發送方。在HTML5規范中,它們把這種通信協議稱為:WebSocket。

3 WebSocket的主要應用領域

根據之前我們的討論,我們可以得知WebSocket在應用數據要進行實時的更新時有先天的優勢,這是WebSocket產生的主要原因,也將是WebSocket的主要應用方向。它的應用領域非常多,比如:社交訂閱、多玩家游戲、多媒體即時通信、協同編輯/編程、股票基金報價、在線教育、體育實況更新等。

4 如何使用WebSocket?

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

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

5 結語

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

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

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

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

作者單位

贛南師范大學科技學院 江西省贛州市 34100

主站蜘蛛池模板: 中文字幕在线永久在线视频2020| 1级黄色毛片| 国产高清在线观看| 精品久久综合1区2区3区激情| 在线精品亚洲国产| 亚洲人成在线精品| 亚洲欧洲日韩国产综合在线二区| 色综合久久88| 浮力影院国产第一页| 精品人妻一区无码视频| 激情网址在线观看| 4虎影视国产在线观看精品| 国产综合另类小说色区色噜噜 | 91精品国产麻豆国产自产在线| 成人精品午夜福利在线播放| 亚洲嫩模喷白浆| Aⅴ无码专区在线观看| 精品综合久久久久久97超人| 国产爽妇精品| 99在线观看视频免费| 毛片一级在线| 欧美亚洲香蕉| 国产91在线|日本| 国产美女精品人人做人人爽| 国产精品久久久久久影院| 国产精品伦视频观看免费| 国产二级毛片| 国产va在线观看免费| 亚洲国产理论片在线播放| 精品人妻系列无码专区久久| 日本在线亚洲| 在线观看国产精美视频| 免费毛片网站在线观看| 亚洲男人的天堂久久精品| 亚洲第一中文字幕| 国产全黄a一级毛片| 亚洲天堂久久久| 午夜无码一区二区三区在线app| 午夜国产小视频| 午夜日本永久乱码免费播放片| 一级高清毛片免费a级高清毛片| 婷婷六月在线| 激情乱人伦| 日本黄色a视频| 动漫精品中文字幕无码| 天天视频在线91频| 国产欧美日韩专区发布| 久久精品国产一区二区小说| 欧美不卡视频一区发布| a色毛片免费视频| 国产在线观看一区精品| 亚洲激情区| 三上悠亚在线精品二区| 国产一区亚洲一区| 好吊色国产欧美日韩免费观看| 亚洲成a∧人片在线观看无码| 亚洲欧美另类中文字幕| 91黄色在线观看| 波多野结衣无码视频在线观看| 国产老女人精品免费视频| 亚洲第一视频免费在线| 国产剧情伊人| 国产精品免费露脸视频| 国产91在线|日本| 亚洲视频四区| 操国产美女| 色综合中文| 亚洲国产欧美国产综合久久 | 就去色综合| 她的性爱视频| 国产天天色| 久久中文字幕不卡一二区| 四虎成人在线视频| 丁香婷婷激情网| 日韩a在线观看免费观看| 久久香蕉欧美精品| 欧美日本在线一区二区三区| 亚洲91精品视频| 日韩在线播放欧美字幕| 在线视频一区二区三区不卡| 亚洲女同一区二区| 无码福利视频|