オブジェクトWebソケットメッセージ
WebSocketMessage
はいWebSocketカプセル化するプロトコルのメッセージ タイプWebSocket伝送プロトコルにおけるさまざまなメッセージのデータ形式や処理方法を利用して、WebSocketクライアントとサーバーは通信します。
クラスのコンストラクターは、WebSocketMessage
指定されたメッセージ タイプ パラメーター をサポートしますtype
。これには、次の 3 つのオプションの値があります。
ws.TEXT
: テキスト タイプのメッセージを表します。内容は文字列です。ws.BINARY
: バイナリ型のメッセージを表し、内容はバイナリデータです。
さらに、WebSocketMessage.masked
属性を変更してマスクを適用する必要があるかどうか、およびWebSocketMessage.compress
属性を使用して圧縮が必要かどうかを指定することもできます。
次のコードは WebSocket サーバーの例です。クライアントが接続すると、サーバーは受信したメッセージをクライアントにエコーバックします。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18var ws = require('ws');
var http = require('http');
var svr = new http.Server(8080, {
'/websocket': ws.upgrade((conn, req) => {
// emit message event
conn.onmessage = e => {
if (e.data.type == ws.TEXT) {
console.log(`接收到客户端发来的消息 ${e.data}`);
conn.send(e.data);
} else {
console.error(`收到未知类型消息 ${e.data.type}`);
}
}
conn.onclose = e => console.log('离开了一个客户端');
})
});
svr.start();
このプログラムでは、WebSocket サポート モジュールと組み込みhttpモジュールを作成してから作成しましたhttpサービス オブジェクトを呼び出し、処理するリクエスト パスを指定します。ws.upgradeこの関数は、対応するパスのリクエストを WebSocket 接続にアップグレードします。 WebSocket 接続を作成すると、サーバーは自動的にws.Socketオブジェクトであり、クライアントが接続し、メッセージを受信し、イベントを閉じるときに処理する onopen、onmessage、onclose およびその他の API を提供します。メッセージを受信すると、サーバーはメッセージのタイプを判断し、テキストタイプの場合は、受信したメッセージをエコーバックします。上記は単純な WebSocket サーバーの処理フローですが、実際のニーズに応じて変更できます。
相続関係
コンストラクタ
WebSocketMessage
パッケージ処理メッセージ オブジェクト コンストラクター
1
2
3
4new WebSocketMessage(Integer type = ws.BINARY,
Boolean masked = true,
Boolean compress = false,
Integer maxSize = 67108864);
呼び出しパラメータ:
- type: 整数、WebSocket メッセージ タイプ、デフォルトは websocket.BINARY
- masked: ブール値、WebSocket メッセージ マスク、デフォルトは true
- compress: ブール値、メッセージが圧縮されているかどうかをマークします。デフォルトは false です。
- maxSize: 整数、最大パケット サイズ (MB)、デフォルトは 67108864 (64M)
絶え間ない
TEXT
テキストタイプを表すメッセージタイプ1を指定します。
1const WebSocketMessage.TEXT = 1;
BINARY
バイナリ型を表すメッセージ タイプ 2 を指定します。
1const WebSocketMessage.BINARY = 2;
メンバーのプロパティ
masked
ブール値、WebSocket マスク フラグのクエリと読み取り、デフォルトは true
1Boolean WebSocketMessage.masked;
compress
ブール値、WebSocket 圧縮ステータスのクエリと読み取り、デフォルトは false
1Boolean WebSocketMessage.compress;
maxSize
整数。最大パケット サイズをバイト単位でクエリおよび設定します。デフォルトは 67108864 (64M)
1Integer WebSocketMessage.maxSize;
value
文字列、メッセージの基本的な内容
1String WebSocketMessage.value;
params
NArray、メッセージの基本パラメータ
1readonly NArray WebSocketMessage.params;
type
整数、メッセージタイプ
1Integer WebSocketMessage.type;
data
値。メッセージのデータをクエリします。この属性は、コンテンツ タイプに応じて異なるデータを返します。テキストの場合は、テキストが返されます。jsonいつ戻るjsonそれ以外の場合はバイナリを返します
1readonly Value WebSocketMessage.data;
body
SeekableStream、メッセージのデータ部分を含むストリーム オブジェクト
1SeekableStream WebSocketMessage.body;
length
Long、メッセージデータ部分の長さ
1readonly Long WebSocketMessage.length;
stream
Stream、メッセージ readFrom をクエリするときのストリーム オブジェクト
1readonly Stream WebSocketMessage.stream;
lastError
文字列、クエリ、およびメッセージ処理の最後のエラーを設定します
1String WebSocketMessage.lastError;
メンバー関数
read
指定したサイズのデータをストリームから読み取ります。このメソッドは、本体の対応するメソッドのエイリアスです。
1Buffer WebSocketMessage.read(Integer bytes = -1) async;
呼び出しパラメータ:
- bytes: 整数。読み取られるデータの量を指定します。デフォルトでは、ランダムなサイズのデータ ブロックが読み取られます。読み取られるデータのサイズはデバイスによって異なります。
返される結果:
- Bufferは、ストリームから読み取られたデータを返します。読み取るデータがない場合、または接続が中断された場合は、null が返されます。
readAll
ストリームから残りのデータをすべて読み取ります。このメソッドは、本体の対応するメソッドのエイリアスです。
1Buffer WebSocketMessage.readAll() async;
返される結果:
- Bufferは、ストリームから読み取られたデータを返します。読み取るデータがない場合、または接続が中断された場合は、null が返されます。
write
指定されたデータを書き込みます。このメソッドは、本体内の対応するメソッドのエイリアスです。
1WebSocketMessage.write(Buffer data) async;
呼び出しパラメータ:
- data:Buffer、書き込まれるデータが与えられると、
json
指定されたデータを JSON エンコードで書き込みます
1Value WebSocketMessage.json(Value data);
呼び出しパラメータ:
- data: 書き込まれるデータの値
返される結果:
- Value、このメソッドはデータを返しません
メッセージ内のデータを JSON エンコードとして解析します
1Value WebSocketMessage.json();
返される結果:
- Value、解析された結果を返します
pack
によるmsgpackエンコーディングは指定されたデータを書き込みます
1Value WebSocketMessage.pack(Value data);
呼び出しパラメータ:
- data: 書き込まれるデータの値
返される結果:
- Value、このメソッドはデータを返しません
によるmsgpackメッセージ内のデータのエンコードと解析
1Value WebSocketMessage.pack();
返される結果:
- Value、解析された結果を返します
end
現在のメッセージ処理の終了を設定します。Chainプロセッサは後続のトランザクションを続行しません
1WebSocketMessage.end();
isEnded
現在のメッセージが終了したかどうかを問い合わせます
1Boolean WebSocketMessage.isEnded();
返される結果:
- Boolean、終了すると true を返します
clear
メッセージの内容をクリアする
1WebSocketMessage.clear();
sendTo
フォーマットされたメッセージを指定されたストリーム オブジェクトに送信します
1WebSocketMessage.sendTo(Stream stm) async;
呼び出しパラメータ:
- stm:Stream、フォーマットされたメッセージを受信するストリーム オブジェクトを指定します。
readFrom
指定されたキャッシュ ストリーム オブジェクトからフォーマットされたメッセージを読み取り、設定されたオブジェクトを解析します
1WebSocketMessage.readFrom(Stream stm) async;
呼び出しパラメータ:
- stm:Stream、フォーマットされたメッセージを読み取るためのストリーム オブジェクトを指定します
toString
オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。
1String WebSocketMessage.toString();
返される結果:
- String、オブジェクトの文字列表現を返します。
toJSON
オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。
1Value WebSocketMessage.toJSON(String key = "");
呼び出しパラメータ:
- key: 文字列、使用されません
返される結果:
- Value、シリアル化可能な JSON を含む値を返します