Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

WebSocket

這是一個實驗中的功能
此功能在某些瀏覽器尚在開發中,請參考兼容表格以得到不同瀏覽器用的前輟。

編撰中
本頁仍未完成

WebSocket 物件提供了建立、管理 WebSocket 伺服器連線的 API,它也有在連線中傳送、接收資料的能力。

方法一覽

void close(in optional unsigned long code, in optional DOMString reason);
void send(in DOMString data);

屬性

屬性 形態 描述
binaryType DOMString 表示連線傳輸的二進制資料形態的字串,若使用 Blob 物件則為 "blob",使用 ArrayBuffer 物件則為 "arraybuffer"。
bufferedAmount unsigned long 呼叫 send() 隊列但尚未傳輸至網路上資料的位元數。連線關閉時此值不會重設為零。連續呼叫 send() 會讓此值不斷上升。只讀
extensions DOMString 伺服器選擇的擴展。目前僅有空字串或表示資料經過壓縮的 "deflate-stream"。只讀
onclose EventListener 當 WebSocket 連線的 readyState 切換至 CLOSED 時呼叫的事件監聽器。監聽器接收命名為 "close" 的 CloseEvent
onerror EventListener 當錯誤發生時呼叫的事件監聽器。事件為命名 "error" 的簡單事件。
onmessage EventListener 當瀏覽器接收伺服器的訊息時呼叫的事件監聽器。監聽器接收命名為 "message" 的 MessageEvent
onopen EventListener 當 WebSocket 連線的 readyState 切換至 OPEN 時呼叫的事件監聽器,表示連線已準備傳送、接收資料。事件為命名 "open" 的簡單事件。
protocol DOMString 伺服器選擇的子協定,這是建立 WebSocket 物件時 protocols 參數裡的其中一個字串。
readyState unsigned short 連線的當前狀態,是就緒狀態常數的其中一個。只讀
url DOMString 建構方法解析出來的 URL,總是絕對 URL。只讀

常數

就緒狀態常數

readyState 屬性使用以下常數描述 WebSocket 的連線狀態。

常數 描述
CONNECTING 0 連線尚未打開。
OPEN 1 連線已打開,可以進行通訊。
CLOSING 2 連線正在進行關閉程序。
CLOSED 3 連線已關閉/連線不能打開。

方法

close()

關閉 WebSocket 連線/連線嘗試,若連線已為 CLOSED,此方法沒有作用。

void close(
  in optional unsigned short code,
  in optional DOMString reason
);
參數
code 選擇性
表示狀態代碼,狀態代碼用以解釋連線關閉的原因。若未指定參數,預設值為 1000(表示正常的「事務完結(transaction complete)」關閉)。請參考 CloseEvent 頁面的狀態代碼列表,有所有的合法值。
reason 選擇性
解釋連線關閉原因的人類可讀字串,字串必不可大於 123 個 UTF-8 字符。
可丟例外
INVALID_ACCESS_ERR
指定不合法的 code
SYNTAX_ERR
reason 字串太長或是含有未配對的代理對。

send()

透過 WebSocket 連線傳輸資料至伺服器。

void send(
  in DOMString data
);

void send(
  in ArrayBuffer data
);

void send(
  in Blob data
); 
參數
data
要傳送至伺服器的字串。
可丟例外
INVALID_STATE_ERR
當前連線不為 OPEN
SYNTAX_ERR
資料為帶有未配對代理對的字串。
註釋

Gecko 6.0 備註
(Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)

Gecko send() 方法的實作與 Gecko 6.0 的規範有差別。Gecko 回傳一個 boolean 以表示連線是否仍處於開啟狀態(且資料成功隊列/傳輸)。另外,此時此刻,Gecko 不支援 ArrayBufferBlob 作為資料形態。

參見

瀏覽器兼容

功能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本支援 ? 4.0 (2.0) ? ? ?
子協定支援 ? 6.0 (6.0) ? ? ?
功能 Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本支援 ? 7.0 (7.0) ? ? ?
子協定支援 ? 7.0 (7.0) ? ? ?

Gecko 備註

自從 Gecko 6.0,建構方法有前輟,須使用 MozWebSocket()

var mySocket = new MozWebSocket("https://www.example.com/socketserver");

文件標籤與貢獻者

標籤: 
 此頁面的貢獻者: teoli, Kennyluck
 最近更新: teoli,