モジュール基本モジュール

モジュール

WebSocketサポートモジュール

WebSocketこのプロトコルは、TCP プロトコルをベースとした全二重通信プロトコルであり、ブラウザとサーバーの間に中断のない接続を確立し、リアルタイムの双方向データ伝送を実現し、あらゆる形式のデータ伝送をサポートできます。fibjsでは、WebSocketサポート モジュールは、実装するための対応する API インターフェイスを提供します。WebSocketサーバーサイドとクライアントサイドの開発。

説明書:

1
var ws = require('ws');

サーバーを作成します。

1 2 3 4 5 6 7 8 9
var 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 4
var 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

1
WebSocketMessage ws.Message;

Socket

WebSocketオブジェクト、参照WebSocket

1
WebSocket ws.Socket;

静的関数

upgrade

WebSocket プロトコル ハンドラーを作成します。httpアップグレードリクエストとハンドシェイクを受信し、生成WebSocket物体

1
static Handler ws.upgrade(Function accept);

呼び出しパラメータ:

  • accept: 関数、接続成功処理関数。コールバックは 2 つのパラメータを渡します。最初のパラメータは受信したパラメータです。WebSocketオブジェクト、2 番目のパラメータはハンドシェイクですHttpRequest物体

返される結果:


WebSocket プロトコル ハンドラーを作成します。httpアップグレードリクエストとハンドシェイクを受信し、生成WebSocket物体

1 2
static Handler ws.upgrade(Object opts, Function accept);

呼び出しパラメータ:

  • opts: オブジェクト、接続オプション、デフォルトは {}
  • accept: 関数、接続成功処理関数。コールバックは 2 つのパラメータを渡します。最初のパラメータは受信したパラメータです。WebSocketオブジェクト、2 番目のパラメータはハンドシェイクですHttpRequest物体

返される結果:

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 を指定します。

1
const ws.CONTINUE = 0;

TEXT

テキスト フレームを表す WebSocket メッセージ タイプ 1 を指定します。

1
const ws.TEXT = 1;

BINARY

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

1
const ws.BINARY = 2;

CLOSE

WebSocket メッセージ タイプ 8 を指定すると、接続が閉じられます

1
const ws.CLOSE = 8;

PING

ping フレームを表す WebSocket メッセージ タイプ 9 を指定します。

1
const ws.PING = 9;

PONG

Pong フレームを表す WebSocket メッセージ タイプ 10 を指定します。

1
const ws.PONG = 10;

CONNECTING

特定WebSocket接続中であることを示すステータス

1
const ws.CONNECTING = 0;

OPEN

特定WebSocketステータス、オープンステータスを示します

1
const ws.OPEN = 1;

CLOSING

特定WebSocketステータス。CLOSE メッセージが送信され、クローズされるのを待っていることを示します。

1
const ws.CLOSING = 2;

CLOSED

特定WebSocket閉じられたことを示すステータス

1
const ws.CLOSED = 3;