標籤:amount 資訊 mount 成功 pen read message 關於 span
WebSocket是單個TCP串連上進行全雙工系統通訊的協議
在WebSocket的API中,用戶端與伺服器只需要進行一次握手就可以保持持久的串連,並可以雙向傳輸資料
與HTTP不同的是,WebSocket需要先建立串連,串連成功之後就可以進行通訊,而且通訊時,要求標頭部可以減少部分狀態資訊
建立WebSocket對象:const Socket = new WebSocket(url, [protocol]) url就是需要串連的url,protocol是子協議(可選)
WebSocket協議的屬性,事件與方法有如下:
屬性: readyState (Socket.readyState)
0:串連尚未建立
1:已建立串連,可以進行通訊
2:串連正在關閉
3:串連已關閉,或串連無法開啟
bufferedAmount-----唯讀,表示已被send()放入隊列中等待傳輸,但UTF-8文本位元組數未發出
事件: open (Socket.onopen) 串連建立成功時觸發(可以進行資料轉送)
message (Socket.onmessage) 用戶端接受伺服器資料時觸發 (可以處理伺服器傳輸過來的資料)
error (Socket.onerror) 通訊發生錯誤時觸發
close (Socket.close) 串連關閉成功時觸發
方法: send() (Socket.send()) 用戶端與伺服器傳輸資料時使用的方法
close() (Socket.close()) 關閉串連
關閉WebSocket串連時,需要用戶端與伺服器一起斷開,可以由用戶端發起關閉,也可以由伺服器發起關閉
用戶端發起關閉: 由用戶端調用close()方法,這個操作會向伺服器發起中斷連線的請求,伺服器接收到這個請求後斷開TCP串連
伺服器發起關閉: 由伺服器向用戶端發起中斷連線的請求,這個請求可以傳輸一些資訊過來,比如狀態代碼,用戶端會觸發close事件,這時就可以調用close()來中斷連線了
關於WebSocket協議