Object 內置對象

對象WebSocket

WebSocket 包協議轉換處理器

用以將Http 協議轉換為WebSocket 包協議消息。創建方式:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
var ws = require('ws'); var http = require('http'); var serv = new http.Server(8811, ws.upgrade((conn) => { conn.onmessage = msg => { conn.send(new Date()); }; })); serv.run(r => 0); var sock = new ws.Socket('ws://127.0.0.1:8811'); sock.on('open', () => { setInterval(() => { sock.send('get date'); }, 1000); }); sock.onmessage = evt => { console.log(evt.data); }

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>EventEmitter|new EventEmitter()|EventEmitter|defaultMaxListeners|on();addListener();prependListener();once();prependOnceListener();off();removeListener();removeAllListeners();setMaxListeners();getMaxListeners();listeners();listenerCount();eventNames();emit()] [<this>WebSocket|new WebSocket()|url;protocol;origin;readyState;onopen;onmessage;onclose;onerror|close();send();ref();unref()] [object] <:- [EventEmitter] [EventEmitter] <:- [WebSocket] EventEmitter new EventEmitter() EventEmitter defaultMaxListeners on() addListener() prependListener() once() prependOnceListener() off() removeListener() removeAllListeners() setMaxListeners() getMaxListeners() listeners() listenerCount() eventNames() emit() WebSocket new WebSocket() url protocol origin readyState onopen onmessage onclose onerror close() send() ref() unref() object toString() toJSON()

構造函數

WebSocket

WebSocket 構造函數

1 2 3
new WebSocket(String url, String protocol = "", String origin = "");

調用參數:

  • url: String, 指定連接的服務器
  • protocol: String, 指定握手協議,缺省為""
  • origin: String, 指定握手時模擬的源,缺省為""

WebSocket 構造函數

1 2
new WebSocket(String url, Object opts);

調用參數:

  • url: String, 指定連接的服務器
  • opts: Object, 連接選項,缺省是{}

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7 8
{ "protocol": "", // 指定握手协议,缺省为空 "origin": "", // 指定握手时模拟的源,缺省为空 "perMessageDeflate": false, // 指定是否支持压缩,缺省不支持 "maxPayload": 67108864, // 指定最大数据包尺寸,缺省为 67108864 "httpClient": hc, // 自定义 httpClient 对象,缺省使用全局 httpClient "headers": // 指定 http(s) 连接时携带的 header,缺省为 {}, }

靜態屬性

defaultMaxListeners

Integer, 默認全局最大監聽器數

1
static Integer WebSocket.defaultMaxListeners;

成員屬性

url

String, 查詢當前對象連接的服務器

1
readonly String WebSocket.url;

protocol

String, 查詢當前對象連接時的協議

1
readonly String WebSocket.protocol;

origin

String, 查詢當前對象連接的源

1
readonly String WebSocket.origin;

readyState

Integer, 查詢當前對象的連接狀態,參見 ws

1
readonly Integer WebSocket.readyState;

onopen

Function, 查詢和綁定連接成功事件,相當於on("open", func);

1
Function WebSocket.onopen;

onmessage

Function, 查詢和綁定接受到對方消息的事件,相當於on("message", func);

1
Function WebSocket.onmessage;

onclose

Function, 查詢和綁定連接關閉的事件,相當於on("close", func);

1
Function WebSocket.onclose;

onerror

Function, 查詢和綁定錯誤發生的事件,相當於on("error", func);

1
Function WebSocket.onerror;

成員函數

close

關閉當前連接,此操作會向對方發送CLOSE 數據包,並等待對方響應

1 2
WebSocket.close(Integer code = 1000, String reason = "");

調用參數:

  • code: Integer, 指定關閉的代碼,允許值為3000-4999 或者1000,缺省為1000
  • reason: String, 指定關閉的原因,缺省為""

send

向對方發送一段文本

1
WebSocket.send(String data);

調用參數:

  • data: String, 指定發送的文本

向對方發送一段二進制數據

1
WebSocket.send(Buffer data);

調用參數:

  • data: Buffer, 指定發送的二進制數據

ref

維持fibjs 進程不退出,在對象綁定期間阻止fibjs 進程退出

1
WebSocket WebSocket.ref();

返回結果:

  • WebSocket, 返回當前對象

unref

允許fibjs 進程退出,在對象綁定期間允許fibjs 進程退出

1
WebSocket WebSocket.unref();

返回結果:

  • WebSocket, 返回當前對象

on

綁定一個事件處理函數到對象

1 2
Object WebSocket.on(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象

1
Object WebSocket.on(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

addListener

綁定一個事件處理函數到對象

1 2
Object WebSocket.addListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象

1
Object WebSocket.addListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

prependListener

綁定一個事件處理函數到對象起始

1 2
Object WebSocket.prependListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象起始

1
Object WebSocket.prependListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

once

綁定一個一次性事件處理函數到對象,一次性處理函數只會觸發一次

1 2
Object WebSocket.once(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個一次性事件處理函數到對象,一次性處理函數只會觸發一次

1
Object WebSocket.once(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

prependOnceListener

綁定一個事件處理函數到對象起始

1 2
Object WebSocket.prependOnceListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

綁定一個事件處理函數到對象起始

1
Object WebSocket.prependOnceListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱將作為事件名稱,屬性的值將作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

off

從對象處理隊列中取消指定函數

1 2
Object WebSocket.off(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

取消對象處理隊列中的全部函數

1
Object WebSocket.off(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

從對象處理隊列中取消指定函數

1
Object WebSocket.off(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱作為事件名稱,屬性的值作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

removeListener

從對象處理隊列中取消指定函數

1 2
Object WebSocket.removeListener(String ev, Function func);

調用參數:

  • ev: String, 指定事件的名稱
  • func: Function, 指定事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

取消對象處理隊列中的全部函數

1
Object WebSocket.removeListener(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

從對象處理隊列中取消指定函數

1
Object WebSocket.removeListener(Object map);

調用參數:

  • map: Object, 指定事件映射關係,對象屬性名稱作為事件名稱,屬性的值作為事件處理函數

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

removeAllListeners

從對象處理隊列中取消所有事件的所有監聽器, 如果指定事件,則移除指定事件的所有監聽器。

1
Object WebSocket.removeAllListeners(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

從對象處理隊列中取消所有事件的所有監聽器, 如果指定事件,則移除指定事件的所有監聽器。

1
Object WebSocket.removeAllListeners(Array evs = []);

調用參數:

  • evs: Array, 指定事件的名稱

返回結果:

  • Object, 返回事件對象本身,便於鍊式調用

setMaxListeners

監聽器的默認限制的數量,僅用於兼容

1
WebSocket.setMaxListeners(Integer n);

調用參數:

  • n: Integer, 指定事件的數量

getMaxListeners

獲取監聽器的默認限制的數量,僅用於兼容

1
Integer WebSocket.getMaxListeners();

返回結果:

  • Integer, 返回默認限制數量

listeners

查詢對象指定事件的監聽器數組

1
Array WebSocket.listeners(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Array, 返回指定事件的監聽器數組

listenerCount

查詢對象指定事件的監聽器數量

1
Integer WebSocket.listenerCount(String ev);

調用參數:

  • ev: String, 指定事件的名稱

返回結果:

  • Integer, 返回指定事件的監聽器數量

查詢對象指定事件的監聽器數量

1 2
Integer WebSocket.listenerCount(Value o, String ev);

調用參數:

  • o: Value, 指定查詢的對象
  • ev: String, 指定事件的名稱

返回結果:

  • Integer, 返回指定事件的監聽器數量

eventNames

查詢監聽器事件名稱

1
Array WebSocket.eventNames();

返回結果:

  • Array, 返回事件名稱數組

emit

主動觸發一個事件

1 2
Boolean WebSocket.emit(String ev, ...args);

調用參數:

  • ev: String, 事件名稱
  • args: ..., 事件參數,將會傳遞給事件處理函數

返回結果:

  • Boolean, 返回事件觸發狀態,有響應事件返回true,否則返回false

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String WebSocket.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value WebSocket.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值