オブジェクト組み込みオブジェクト

オブジェクト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 18
var 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 4
new 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を指定します。

1
const WebSocketMessage.TEXT = 1;

BINARY

バイナリ型を表すメッセージ タイプ 2 を指定します。

1
const WebSocketMessage.BINARY = 2;

メンバーのプロパティ

masked

ブール値、WebSocket マスク フラグのクエリと読み取り、デフォルトは true

1
Boolean WebSocketMessage.masked;

compress

ブール値、WebSocket 圧縮ステータスのクエリと読み取り、デフォルトは false

1
Boolean WebSocketMessage.compress;

maxSize

整数。最大パケット サイズをバイト単位でクエリおよび設定します。デフォルトは 67108864 (64M)

1
Integer WebSocketMessage.maxSize;

value

文字列、メッセージの基本的な内容

1
String WebSocketMessage.value;

params

NArray、メッセージの基本パラメータ

1
readonly NArray WebSocketMessage.params;

type

整数、メッセージタイプ

1
Integer WebSocketMessage.type;

data

値。メッセージのデータをクエリします。この属性は、コンテンツ タイプに応じて異なるデータを返します。テキストの場合は、テキストが返されます。jsonいつ戻るjsonそれ以外の場合はバイナリを返します

1
readonly Value WebSocketMessage.data;

body

SeekableStream、メッセージのデータ部分を含むストリーム オブジェクト

1
SeekableStream WebSocketMessage.body;

length

Long、メッセージデータ部分の長さ

1
readonly Long WebSocketMessage.length;

stream

Stream、メッセージ readFrom をクエリするときのストリーム オブジェクト

1
readonly Stream WebSocketMessage.stream;

lastError

文字列、クエリ、およびメッセージ処理の最後のエラーを設定します

1
String WebSocketMessage.lastError;

メンバー関数

read

指定したサイズのデータ​​をストリームから読み取ります。このメソッドは、本体の対応するメソッドのエイリアスです。

1
Buffer WebSocketMessage.read(Integer bytes = -1) async;

呼び出しパラメータ:

  • bytes: 整数。読み取られるデータの量を指定します。デフォルトでは、ランダムなサイズのデータ​​ ブロックが読み取られます。読み取られるデータのサイズはデバイスによって異なります。

返される結果:

  • Bufferは、ストリームから読み取られたデータを返します。読み取るデータがない場合、または接続が中断された場合は、null が返されます。

readAll

ストリームから残りのデータをすべて読み取ります。このメソッドは、本体の対応するメソッドのエイリアスです。

1
Buffer WebSocketMessage.readAll() async;

返される結果:

  • Bufferは、ストリームから読み取られたデータを返します。読み取るデータがない場合、または接続が中断された場合は、null が返されます。

write

指定されたデータを書き込みます。このメソッドは、本体内の対応するメソッドのエイリアスです。

1
WebSocketMessage.write(Buffer data) async;

呼び出しパラメータ:

  • data:Buffer、書き込まれるデータが与えられると、

json

指定されたデータを JSON エンコードで書き込みます

1
Value WebSocketMessage.json(Value data);

呼び出しパラメータ:

  • data: 書き込まれるデータの値

返される結果:

  • Value、このメソッドはデータを返しません

メッセージ内のデータを JSON エンコードとして解析します

1
Value WebSocketMessage.json();

返される結果:

  • Value、解析された結果を返します

pack

によるmsgpackエンコーディングは指定されたデータを書き込みます

1
Value WebSocketMessage.pack(Value data);

呼び出しパラメータ:

  • data: 書き込まれるデータの値

返される結果:

  • Value、このメソッドはデータを返しません

によるmsgpackメッセージ内のデータのエンコードと解析

1
Value WebSocketMessage.pack();

返される結果:

  • Value、解析された結果を返します

end

現在のメッセージ処理の終了を設定します。Chainプロセッサは後続のトランザクションを続行しません

1
WebSocketMessage.end();

isEnded

現在のメッセージが終了したかどうかを問い合わせます

1
Boolean WebSocketMessage.isEnded();

返される結果:

  • Boolean、終了すると true を返します

clear

メッセージの内容をクリアする

1
WebSocketMessage.clear();

sendTo

フォーマットされたメッセージを指定されたストリーム オブジェクトに送信します

1
WebSocketMessage.sendTo(Stream stm) async;

呼び出しパラメータ:

  • stm:Stream、フォーマットされたメッセージを受信するストリーム オブジェクトを指定します。

readFrom

指定されたキャッシュ ストリーム オブジェクトからフォーマットされたメッセージを読み取り、設定されたオブジェクトを解析します

1
WebSocketMessage.readFrom(Stream stm) async;

呼び出しパラメータ:

  • stm:Stream、フォーマットされたメッセージを読み取るためのストリーム オブジェクトを指定します

toString

オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。

1
String WebSocketMessage.toString();

返される結果:

  • String、オブジェクトの文字列表現を返します。

toJSON

オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。

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

呼び出しパラメータ:

  • key: 文字列、使用されません

返される結果:

  • Value、シリアル化可能な JSON を含む値を返します