首頁  >  文章  >  web前端  >  HTML5中WebSocket是什麼意思

HTML5中WebSocket是什麼意思

云罗郡主
云罗郡主原創
2019-01-26 10:08:464866瀏覽

一、HTML5中WebSocket是什麼意思

WebSocket 是HTML5 開始提供的一種在單一TCP 連接上進行全雙工通訊的協議,WebSocket 使得客戶端和伺服器之間的資料交換變得更簡單,允許服務端主動向客戶端推送資料。在 WebSocket API 中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,並進行雙向資料傳輸。

HTML5中WebSocket是什麼意思

在 WebSocket API 中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以資料互相傳送。

現在,很多網站為了實現推播技術,所使用的技術都是 Ajax 輪詢。輪詢是在特定的時間間隔(如每1秒),由瀏覽器對伺服器發出HTTP請求,然後由伺服器傳回最新的資料給客戶端的瀏覽器。這種傳統的模式帶來明顯的缺點,即瀏覽器需要不斷的向伺服器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的資料可能只是很小的一部分,顯然這樣會浪費很多的頻寬等資源。

HTML5 定義的 WebSocket 協議,能更好的節省伺服器資源和頻寬,並且能夠更即時地進行通訊。

瀏覽器透過 JavaScript 向伺服器發出建立 WebSocket 連線的請求,連線建立以後,客戶端和伺服器端就可以透過 TCP 連線直接交換資料。

當你取得 Web Socket 連線後,你可以透過 send() 方法來傳送數據,並透過 onmessage 事件接收伺服器傳回的資料。

以下 API 用於建立 WebSocket 物件。

var Socket = new WebSocket(url, [protocol] );

WebSocket 屬性

HTML5中WebSocket是什麼意思

二、Websocket是什麼樣的協議,具體有什麼優點

 首先,Websocket是一個持久化的協議,相對於HTTP這種非持久的協議來說。

 簡單的舉例吧,用目前應用比較廣泛的PHP生命週期來解釋。

 1) HTTP的生命週期透過Request來界定,也就是一個Request 一個Response,那麼在HTTP1.0中,這次HTTP請求就結束了。

 在HTTP1.1中進行了改進,使得有一個keep-alive,也就是說,在一個HTTP連接中,可以發送多個Request,接收多個Response。

 但請記住 Request = Response , 在HTTP中永遠是這樣,也就是說一個request只能有一個response。而且這個response也是被動的,不能主動發起。


以上是HTML5中WebSocket是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn