オブジェクトWebソケット
WebSocket は、TCP プロトコルをベースにした全二重通信プロトコルで、ブラウザとサーバーの間に中断のない接続を確立し、リアルタイムの双方向データ送信を実現し、あらゆる形式のデータ送信をサポートできます。 fibjs では、WebSocket サポート モジュールが対応する API インターフェイスを提供し、WebSocket サーバーとクライアントの開発を実現できます。
WebSocket サポート モジュールは WebSocket プロトコルの単なる実装であり、HTTP プロトコル上で動作する必要があります。サーバー側では、アップグレード機能により HTTP リクエストを WebSocket 接続に変換できますが、クライアント側では、接続するサーバーのアドレスを WebSocket プロトコルの URL で指定する必要があります。
WebSocket サーバーの起動例:
1
2
3
4
5
6
7
8
9
10
11var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade(conn => {
conn.onmessage = e => {
conn.send('fibjs:' + e.data);
};
})
});
svr.start();
クライアントで上記のサーバーへの接続を確立する例:
1
2
3
4
5
6
7
8
9
10
11
12var ws = require("ws");
var conn = new ws.Socket("ws://127.0.0.1/ws");
// emit open event
conn.onopen = () => {
console.log("websocket connected");
conn.send("hi");
};
// emit close event
conn.onmessage = evt => {
console.log("websocket receive: " + evt.data);
};
相続関係
コンストラクタ
WebSocket
WebSocket コンストラクター
1
2
3new WebSocket(String url,
String protocol = "",
String origin = "");
呼び出しパラメータ:
- url: 文字列、接続されたサーバーを指定します
- protocol: 文字列。ハンドシェイク プロトコルを指定します。デフォルトは "" です。
- origin: 文字列。ハンドシェイク中のシミュレーションのソースを指定します。デフォルトは「」です。
WebSocket コンストラクター
1
2new WebSocket(String url,
Object opts);
呼び出しパラメータ:
- url: 文字列、接続されたサーバーを指定します
- opts: オブジェクト、接続オプション、デフォルトは {}
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4
5
6
7
8{
"protocol": "", // specify the sub-protocol, default is ""
"origin": "", // specify the origin, default is ""
"perMessageDeflate": false, // specify whether to enable permessage-deflate, default is false
"maxPayload": 67108864, // specify the max payload size, default is 64MB
"httpClient": hc, // specify the http client, default is null, use the global http client
"headers": // specify the http headers, default is {}
}
静的プロパティ
defaultMaxListeners
整数、デフォルトのグローバル最大リスナー数
1static Integer WebSocket.defaultMaxListeners;
メンバーのプロパティ
url
文字列。現在のオブジェクトが接続されているサーバーをクエリします。
1readonly String WebSocket.url;
protocol
文字列、現在のオブジェクト接続のプロトコルを問い合わせる
1readonly String WebSocket.protocol;
origin
文字列、現在のオブジェクト接続のソースをクエリします。
1readonly String WebSocket.origin;
readyState
整数。現在のオブジェクトの接続ステータスをクエリします。を参照してください。ws
1readonly Integer WebSocket.readyState;
onopen
関数、クエリ、およびバインド接続成功イベント。on("open", func); と同等。
1Function WebSocket.onopen;
onmessage
相手からメッセージを受信する関数、クエリ、バインド イベント。on("message", func); と同等です。
1Function WebSocket.onmessage;
onclose
on("close", func) と同等の、接続終了イベントをクエリしてバインドする関数。
1Function WebSocket.onclose;
onerror
エラー発生時の関数、クエリ、バインドイベント。on("error", func); と同等。
1Function WebSocket.onerror;
メンバー関数
close
現在の接続を閉じます。この操作は相手に CLOSE パケットを送信し、相手の応答を待ちます。
1
2WebSocket.close(Integer code = 1000,
String reason = "");
呼び出しパラメータ:
- code: 整数、シャットダウン コードを指定します。許可される値は 3000 ~ 4999 または 1000、デフォルトは 1000 です。
- reason: 文字列。シャットダウンの理由を指定します。デフォルトは「」です。
send
相手にテキストを送信する
1WebSocket.send(String data);
呼び出しパラメータ:
- data: 文字列、送信するテキストを指定します
バイナリデータを相手に送信する
1WebSocket.send(Buffer data);
呼び出しパラメータ:
- data:Buffer、送信されるバイナリ データを指定します
ref
fibjs プロセスが終了しないようにし、オブジェクト バインド中に fibjs プロセスが終了しないようにします。
1WebSocket WebSocket.ref();
返される結果:
- WebSocket、現在のオブジェクトを返します
unref
fibjs プロセスの終了を許可する: オブジェクト バインド中に fibjs プロセスの終了を許可します。
1WebSocket WebSocket.unref();
返される結果:
- WebSocket、現在のオブジェクトを返します
on
イベントハンドラーをオブジェクトにバインドする
1
2Object WebSocket.on(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトにバインドする
1Object WebSocket.on(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
addListener
イベントハンドラーをオブジェクトにバインドする
1
2Object WebSocket.addListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトにバインドする
1Object WebSocket.addListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
prependListener
イベントハンドラーをオブジェクトのオリジンにバインドする
1
2Object WebSocket.prependListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトのオリジンにバインドする
1Object WebSocket.prependListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
once
ワンタイム イベント ハンドラーをオブジェクトにバインドします。ワンタイム ハンドラーは 1 回だけトリガーされます。
1
2Object WebSocket.once(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
ワンタイム イベント ハンドラーをオブジェクトにバインドします。ワンタイム ハンドラーは 1 回だけトリガーされます。
1Object WebSocket.once(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
prependOnceListener
イベントハンドラーをオブジェクトのオリジンにバインドする
1
2Object WebSocket.prependOnceListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
イベントハンドラーをオブジェクトのオリジンにバインドする
1Object WebSocket.prependOnceListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベント マッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
off
オブジェクト処理キューから関数の割り当てを解除する
1
2Object WebSocket.off(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キュー内のすべての関数をキャンセルします
1Object WebSocket.off(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キューから関数の割り当てを解除する
1Object WebSocket.off(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベントのマッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
removeListener
オブジェクト処理キューから関数の割り当てを解除する
1
2Object WebSocket.removeListener(String ev,
Function func);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
- func: 関数、イベント処理関数を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キュー内のすべての関数をキャンセルします
1Object WebSocket.removeListener(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクト処理キューから関数の割り当てを解除する
1Object WebSocket.removeListener(Object map);
呼び出しパラメータ:
- map: オブジェクト。イベントのマッピング関係を指定します。オブジェクトの属性名はイベント名として使用され、属性の値はイベント処理関数として使用されます。
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
removeAllListeners
オブジェクトの処理キューからすべてのイベントのすべてのリスナーをキャンセルします。イベントが指定されている場合は、指定されたイベントのすべてのリスナーが削除されます。
1Object WebSocket.removeAllListeners(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
オブジェクトの処理キューからすべてのイベントのすべてのリスナーをキャンセルします。イベントが指定されている場合は、指定されたイベントのすべてのリスナーが削除されます。
1Object WebSocket.removeAllListeners(Array evs = []);
呼び出しパラメータ:
- evs: 配列、イベントの名前を指定します
返される結果:
- Object、チェーン呼び出しを容易にするためにイベント オブジェクト自体を返します。
setMaxListeners
リスナー数のデフォルト制限 (互換性のみを目的)
1WebSocket.setMaxListeners(Integer n);
呼び出しパラメータ:
- n: 整数、イベントの数を指定します
getMaxListeners
互換性のみを目的として、デフォルトのリスナー制限数を取得します。
1Integer WebSocket.getMaxListeners();
返される結果:
- Integer、デフォルトの制限数量を返します
listeners
オブジェクトの指定されたイベントについてリスナー配列をクエリします。
1Array WebSocket.listeners(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Array、指定されたイベントのリスナー配列を返します。
listenerCount
オブジェクトの指定されたイベントのリスナーの数をクエリします。
1Integer WebSocket.listenerCount(String ev);
呼び出しパラメータ:
- ev: 文字列、イベントの名前を指定します
返される結果:
- Integer、指定されたイベントのリスナーの数を返します。
オブジェクトの指定されたイベントのリスナーの数をクエリします。
1
2Integer WebSocket.listenerCount(Value o,
String ev);
呼び出しパラメータ:
- o: 値。クエリのオブジェクトを指定します。
- ev: 文字列、イベントの名前を指定します
返される結果:
- Integer、指定されたイベントのリスナーの数を返します。
eventNames
クエリリスナーイベント名
1Array WebSocket.eventNames();
返される結果:
- Array、イベント名の配列を返します。
emit
イベントをアクティブにトリガーする
1
2Boolean WebSocket.emit(String ev,
...args);
呼び出しパラメータ:
- ev: 文字列、イベント名
- args: ...、イベントパラメータはイベント処理関数に渡されます
返される結果:
- Boolean、イベント トリガーのステータスを返し、応答イベントがある場合は true を返し、それ以外の場合は false を返します。
toString
オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。
1String WebSocket.toString();
返される結果:
- String、オブジェクトの文字列表現を返します。
toJSON
オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。
1Value WebSocket.toJSON(String key = "");
呼び出しパラメータ:
- key: 文字列、使用されません
返される結果:
- Value、シリアル化可能な JSON を含む値を返します