モジュール
WebSocketサポートモジュール
WebSocketこのプロトコルは、TCP プロトコルをベースとした全二重通信プロトコルであり、ブラウザとサーバーの間に中断のない接続を確立し、リアルタイムの双方向データ伝送を実現し、あらゆる形式のデータ伝送をサポートできます。fibjsでは、WebSocketサポート モジュールは、実装するための対応する API インターフェイスを提供します。WebSocketサーバーサイドとクライアントサイドの開発。
説明書:
1var ws = require('ws');
サーバーを作成します。
1
2
3
4
5
6
7
8
9var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade((conn, req) => {
conn.onmessage = e => console.log(e.data);
})
});
svr.start();
上記のコードでは、最初に組み込み fibjs が require 関数を通じてロードされます。WebSocketモジュールをサポートしてから使用しますhttp.Serverこのクラスは、HTTP サーバー インスタンスを作成し、リスニング ポート番号と HTTP リクエスト パスを指定し、指定されたパスでアップグレード関数を使用してリクエストをアップグレードします。WebSocket接続すると、サーバーは自動的にWebSocketこのオブジェクトは、onopen、onmessage、onerror、onclose などのイベントを提供し、send 関数を通じてクライアントにデータを送信できます。
使用WebSocketクライアント:
1
2
3
4var ws = require('ws');
var conn = new ws.Socket('ws://127.0.0.1/ws');
conn.onmessage = e => console.log(e.data);
作成できるのは、Socketインスタンスを作成し、WebSocketクライアント接続を完了するための URL。Socketこのクラスは、onmessage、onerror、onclose などのコールバック関数と送信関数を提供し、サーバーにデータを送信したり、サーバーから送信されたデータを受信したりできます。
認識しなければならないのは、WebSocketサポートモジュールは単純にWebSocketHTTP プロトコル上で動作する必要があるプロトコルの実装。サーバー側では、アップグレード機能を使用して HTTP リクエストを次の形式に変換できます。WebSocket接続、およびクライアント側では、次のように渡す必要があります。WebSocket接続するサーバーアドレスを指定するプロトコルURL。
物体
Message
WebSocket メッセージ オブジェクトを作成します。 を参照してください。WebSocketMessage
1WebSocketMessage ws.Message;
Socket
1WebSocket ws.Socket;
静的関数
upgrade
WebSocket プロトコル ハンドラーを作成します。httpアップグレードリクエストとハンドシェイクを受信し、生成WebSocket物体
1static Handler ws.upgrade(Function accept);
呼び出しパラメータ:
- accept: 関数、接続成功処理関数。コールバックは 2 つのパラメータを渡します。最初のパラメータは受信したパラメータです。WebSocketオブジェクト、2 番目のパラメータはハンドシェイクですHttpRequest物体
返される結果:
- Handler、プロトコル ハンドラーを返します。HttpServer、Chain、Routingドッキングを待っています```
WebSocket プロトコル ハンドラーを作成します。httpアップグレードリクエストとハンドシェイクを受信し、生成WebSocket物体
1
2static Handler ws.upgrade(Object opts,
Function accept);
呼び出しパラメータ:
- opts: オブジェクト、接続オプション、デフォルトは {}
- accept: 関数、接続成功処理関数。コールバックは 2 つのパラメータを渡します。最初のパラメータは受信したパラメータです。WebSocketオブジェクト、2 番目のパラメータはハンドシェイクですHttpRequest物体
返される結果:
- Handler、プロトコル ハンドラーを返します。HttpServer、Chain、Routingドッキングを待っています
opts にはリクエストの追加オプションが含まれており、次のようにサポートされます。
1
2
3
4{
"perMessageDeflate": false, // specify whether to use permessage-deflate, default is true
"maxPayload": 67108864 // specify the maximum allowed message size, default is 64MB
}
絶え間ない
CONTINUE
継続フレームを表す WebSocket メッセージ タイプ 0 を指定します。
1const ws.CONTINUE = 0;
TEXT
テキスト フレームを表す WebSocket メッセージ タイプ 1 を指定します。
1const ws.TEXT = 1;
BINARY
バイナリ フレームを表す WebSocket メッセージ タイプ 2 を指定します。
1const ws.BINARY = 2;
CLOSE
WebSocket メッセージ タイプ 8 を指定すると、接続が閉じられます
1const ws.CLOSE = 8;
PING
ping フレームを表す WebSocket メッセージ タイプ 9 を指定します。
1const ws.PING = 9;
PONG
Pong フレームを表す WebSocket メッセージ タイプ 10 を指定します。
1const ws.PONG = 10;
CONNECTING
特定WebSocket接続中であることを示すステータス
1const ws.CONNECTING = 0;
OPEN
特定WebSocketステータス、オープンステータスを示します
1const ws.OPEN = 1;
CLOSING
特定WebSocketステータス。CLOSE メッセージが送信され、クローズされるのを待っていることを示します。
1const ws.CLOSING = 2;
CLOSED
特定WebSocket閉じられたことを示すステータス
1const ws.CLOSED = 3;