HTML學習筆記 九 Web Socket

2021-10-03 20:49:58 字數 1778 閱讀 9478

websocket 是乙個建立在 tcp 之上進行全雙工通訊的應用層協議

我們知道,http 協議採用的是請求/響應模式,服務端是不能主動向客戶端推送資料的

若要實現推送功能,一般都是採用 ajax 輪詢,但這樣頻繁的請求會給服務端帶來極大的壓力

websocket 協議就是為了解決這種類似的場景而出現的,它允許服務端可以主動向客戶端推送資料

瀏覽器和伺服器通過一次握手,就能在兩者之間建立持續性的連線,進行雙向資料傳輸,直至任意一方將其關閉

目前,基於 sha 加密方式的握手協議是使用最為廣泛的,具體的過程如下:

乙個典型的客戶端請求如下:

sec-websocket-key: 隨機字串

sec-websocket-version: 13乙個典型的服務端響應如下:

sec-websocket-accept: 根據 sec-websocket-key 計算得到

sec-websocket-location: ws://localhost:5000在理解了原理之後,我們下面再來看一下具體要怎麼使用 websocket

在客戶端瀏覽器中,可以通過建構函式websocket()建立乙個物件

其中,引數url用於指定連線位址,引數protocol用於指定可接受的子協議

websocket

(url,

[protocol]

)

建構函式返回乙個 websocket 物件,該物件常用的屬性和方法如下:

var ws =

newwebsocket

('ws://localhost:5000'

)ws.

onopen

=function

(event)

ws.onmessage

=function

(event)

ws.onclose

=function

(event)

; ws.

onerror

=function

(event)

而對於伺服器而言,websocket 只是一種協議而已,不同的語言和不同的框架會有不同的實現

下面我們以 node.js 為例,寫乙個簡單的 demo

var express =

require

('express'

)var expressws =

require

('express-ws'

)express()

expresswsws(

'/',

function

(ws, req))}

)listen

(5000

,'127.0.0.1'

,function()

)

學習筆記(九)

字元處理只針對c n d t string型別,不做型別轉換,都按照c型別處理,也可以處理這些型別構成的結構體,有專門的字串比較 定位操作 concatenate first name last name into first name separated by separate.write fir...

Html筆記 九 頭標籤

頭標籤 頭標籤都放在 head 頭部分之間。包括 title base meta link 指定瀏覽器的標題欄顯示的內容。href 屬性 指定網頁中所有的超連結的目錄。可以是本地目錄,也可以是網路目錄,注意值的結尾處一定要用 表示目錄。只作用於相對路徑的超連結檔案。name 屬性 網頁的描述資訊。當...

HTML學習筆記

2004 9 9 星期四 陰 hello world 整個頁面分成三部分 1 一行包括html版本資訊的內容 2 報頭申明區域 3 頁面主要部分,包括頁面的實際內容。2.基本的html標記 答 1 headings 標題 2 paragraphs 段落 this is a paragraph 3 l...