Modul Grundmodul

modulews

WebSocket-Unterstützungsmodul

WebSocketDas Protokoll ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert. Es stellt eine unterbrechungsfreie Verbindung zwischen dem Browser und dem Server her, kann eine bidirektionale Datenübertragung in Echtzeit realisieren und die Datenübertragung in jedem Format unterstützen. In fibjs,WebSocketDas Support-Modul stellt entsprechende API-Schnittstellen zur Implementierung bereitWebSocketServerseitige 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 werden die integrierten fibjs zunächst über die Funktion require geladen.WebSocketSupport-Module, dann verwendenhttp.ServerDie Klasse erstellt eine HTTP-Serverinstanz, gibt die Nummer des Überwachungsports 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 die Ereignisse onopen, onmessage, onerror, onclose und andere 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 vonSocketInstanz und geben Sie a anWebSocketURL zum Herstellen der Clientverbindung.SocketDie Klasse bietet Onmessage-, Onerror-, Onclose- und andere Rückruffunktionen sowie Sendefunktionen, mit denen Daten an den Server gesendet und vom Server gesendete Daten empfangen werden können.

muss sich darüber im Klaren sein,WebSocketSupport-Module sind einfachWebSocketEine Implementierung des Protokolls, die auf dem HTTP-Protokoll aufbauen muss. Auf der Serverseite kann die Upgrade-Funktion genutzt werden, um HTTP-Anfragen in umzuwandelnWebSocketVerbindung, und auf der Clientseite müssen Sie bestehenWebSocketProtokoll-URL zur Angabe der Serveradresse, mit der 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-Protokollhandler aushttpUpgrade-Anfrage und Handshake erhalten, generierenWebSocketObjekt

1
static Handler ws.upgrade(Function accept);

Aufrufparameter:

  • accept: Funktion, Verbindungserfolgsverarbeitungsfunktion, der Rückruf übergibt zwei Parameter, der erste Parameter ist der empfangeneWebSocketObjekt, der zweite Parameter ist der HandshakeHttpRequestObjekt

Rückgabeergebnisse:


Erstellen Sie einen WebSocket-Protokollhandler aushttpUpgrade-Anfrage und Handshake erhalten, generierenWebSocketObjekt

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

Aufrufparameter:

  • opts: Objekt, Verbindungsoption, Standard ist {}
  • accept: Funktion, Verbindungserfolgsverarbeitungsfunktion, der Rückruf übergibt zwei Parameter, der erste Parameter ist der empfangeneWebSocketObjekt, der zweite Parameter ist der HandshakeHttpRequestObjekt

Rückgabeergebnisse:

opts enthält zusätzliche Optionen für die Anfrage, die wie folgt unterstützt werden:

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 WebSocket-Nachrichtentyp 2 an, der einen binären Frame 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

AngebenWebSocketStatus, der den offenen Status anzeigt

1
const ws.OPEN = 1;

CLOSING

AngebenWebSocketStatus, der anzeigt, dass die CLOSE-Nachricht gesendet wurde und darauf wartet, geschlossen zu werden.

1
const ws.CLOSING = 2;

CLOSED

AngebenWebSocketStatus, der anzeigt, dass es geschlossen wurde

1
const ws.CLOSED = 3;