Modul Basismodul

Modul ws

Websocket-Unterstützungsmodul

WebSocketDas Protokoll ist ein auf dem TCP-Protokoll basierendes Vollduplex-Kommunikationsprotokoll, das eine ununterbrochene Verbindung zwischen dem Browser und dem Server herstellt, eine Zwei-Wege-Datenübertragung in Echtzeit realisieren kann und die Datenübertragung in jedem Format unterstützen kann. In fibjs,WebSocketDas Unterstützungsmodul stellt die entsprechende API-Schnittstelle bereit, die realisiert werden kannWebSocketServerseitige und clientseitige Entwicklung.

Anweisungen:

1
var ws = require('ws');

Erstellen Sie einen Server:

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();

Im obigen Code wird das eingebaute fibjs zuerst durch die require-Funktion geladenWebSocketSupport-Modul, dann verwendenhttp.ServerDie Klasse erstellt eine HTTP-Serverinstanz, gibt die Überwachungsportnummer und den HTTP-Anforderungspfad an und verwendet dann die Upgrade-Funktion unter dem angegebenen Pfad, um die Anforderung zu aktualisierenWebSocketVerbindung erstellt der Server automatisch eineWebSocketDas Objekt stellt onopen, onmessage, onerror, onclose und andere Ereignisse bereit und kann über die Sendefunktion Daten an den Client senden.

verwendenWebSocketKlient:

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);

kann erstellt werden durchSocketBeispiel, und geben Sie a anWebSocketURL zum Abschließen der Clientverbindung.SocketDie Klasse stellt onmessage, onerror, onclose und andere Callback-Funktionen und Sendefunktionen bereit, die das Senden von Daten an den Server und das Empfangen von vom Server gesendeten Daten realisieren können.

bewusst sein müssen,WebSocketSupport-Module sind nurWebSocketEine Implementierung des Protokolls, die auf dem HTTP-Protokoll aufbauen muss. Auf der Serverseite kann die HTTP-Anfrage umgewandelt werdenWebSocketVerbindung, während Sie auf der Clientseite passieren müssenWebSocketProtokoll-URL zur Angabe der Adresse des Servers, zu dem eine Verbindung hergestellt werden soll.

Objekt

Message

Erstellen Sie ein Websocket-Nachrichtenobjekt, sieheWebSocketMessage

1
WebSocketMessage ws.Message;

Socket

WebSocketObjekt, sieheWebSocket

1
WebSocket ws.Socket;

statische Funktion

upgrade

Erstellen Sie einen Websocket-Protokoll-Handler, fromhttpUpgrade-Anfrage erhalten und Hände schütteln, generierenWebSocketObjekt

1
static Handler ws.upgrade(Function accept);

Aufrufparameter:

  • accept: Funktion, die Verbindungserfolgsverarbeitungsfunktion, der Rückruf wird zwei Parameter übergeben, der erste Parameter ist der empfangeneWebSocketObject, der zweite Parameter ist der HandshakeHttpRequestObjekt

Rückgabeergebnis:


Erstellen Sie einen Websocket-Protokoll-Handler, fromhttpUpgrade-Anfrage erhalten und Hände schütteln, generierenWebSocketObjekt

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

Aufrufparameter:

  • opts: Objekt, Verbindungsoptionen, Standard ist {}
  • accept: Funktion, die Verbindungserfolgsverarbeitungsfunktion, der Rückruf wird zwei Parameter übergeben, der erste Parameter ist der empfangeneWebSocketObject, der zweite Parameter ist der HandshakeHttpRequestObjekt

Rückgabeergebnis:

opts enthält zusätzliche Optionen für die Anfrage, der unterstützte Inhalt ist wie folgt:

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 }

Konstante

CONTINUE

Geben Sie den Websocket-Nachrichtentyp 0 an, der einen Fortsetzungsrahmen darstellt

1
const ws.CONTINUE = 0;

TEXT

Geben Sie den Websocket-Nachrichtentyp 1 an, der einen Textrahmen darstellt

1
const ws.TEXT = 1;

BINARY

Geben Sie den Websocket-Nachrichtentyp 2 an, der einen Binärrahmen darstellt

1
const ws.BINARY = 2;

CLOSE

Geben Sie den Websocket-Nachrichtentyp 8 an, die Verbindung wird geschlossen

1
const ws.CLOSE = 8;

PING

Geben Sie den Websocket-Nachrichtentyp 9 an, der einen Ping-Frame darstellt

1
const ws.PING = 9;

PONG

Geben Sie den Websocket-Nachrichtentyp 10 an, der einen Pong-Frame darstellt

1
const ws.PONG = 10;

CONNECTING

angebenWebSocketStatus, der anzeigt, dass eine Verbindung hergestellt wird

1
const ws.CONNECTING = 0;

OPEN

angebenWebSocketZustand, der den offenen Zustand anzeigt

1
const ws.OPEN = 1;

CLOSING

angebenWebSocketStatus, der angibt, dass die CLOSE-Nachricht gesendet wurde und darauf wartet, geschlossen zu werden

1
const ws.CLOSING = 2;

CLOSED

angebenWebSocketStatus, der anzeigt, dass es geschlossen ist

1
const ws.CLOSED = 3;