Html5——WebSocket

ing...html

背景

是什麼

API

使用WebSocket構造函數建立webSocket對象。html5

var webSocket = new WebSocket('ws://localhost:8080');

構造器建立的時候就會開始創建鏈接(跟服務進行握手操做),而且readyState等於0。 若是握手成功,則會觸發open事件,而且readyState等於1;反之若是致使握手失敗(url不正確等),WebSocket會噴出error日誌,而且觸發error, close事件,而且readyState等於3。web

屬性

1. url

<String>,只讀,webSocket服務地址。在建立WebSocket對象是傳入的值。
url的方案是ws://或者wss://。websocket

2. readState

<int>, 只讀,表示WebSocket對象的狀態。可取值的枚舉:socket

WebSocket.CONNECTING (0):表示還未創建鏈接;
WebSocket.OPEN (1): 表示已經創建鏈接,能夠和服務進行通訊了;
WebSocket.CLOSING (2): 表示鏈接正在關閉鏈接,進行關閉鏈接握手;
WebSocket.CLOSED (3): 表示連接已經被關閉了。函數

3.protocol

<String>|<[String]>, 只讀,子協議。url

4.事件屬性方法

還有4個事件對應的方法:onopen, onclose, onmessage, onerror。日誌

方法

1.send(data)

向服務發送數據data。
注意只有readyState等於OPEN(1)時才能正確執行該方法,不然會拋異常。
data必須是字符串???code

2.close

關閉鏈接。會觸發close事件。被close的webScoket不能從新創建鏈接。htm

事件

兼容性

WebScoket, MozWebScoket

WebSocket服務

原理

握手

WebSocket協議中的握手過程經過http協議完成的。

Client### ?

Request:
Sec-WebSocket-Extensions
Sec-WebSocket-Key
Sec-WebSocket-Version
Upgrade:websocket

Response:
Sec-WebSocket-Accept

參考

  1. 介紹:https://www.webcodegeeks.com/...
  2. 規範:https://www.w3.org/TR/2011/WD...
  3. API:https://developer.mozilla.org...
  4. 介紹:https://www.websocket.org/qua...
  5. WebSocket數據包協議詳解: http://www.cnblogs.com/smark/...
相關文章
相關標籤/搜索