Module basismodule

module ws

websocket-ondersteuningsmodule

WebSocketHet protocol is een full-duplex communicatieprotocol gebaseerd op het TCP-protocol, dat een ononderbroken verbinding tot stand brengt tussen de browser en de server, real-time tweerichtingsgegevensoverdracht kan realiseren en gegevensoverdracht in elk formaat kan ondersteunen. in fibjs,WebSocketDe ondersteuningsmodule biedt de bijbehorende API-interface, die kan worden gerealiseerdWebSocketServer-side en client-side ontwikkeling.

Instructies:

1
var ws = require('ws');

Maak een server aan:

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

In de bovenstaande code wordt de ingebouwde fibjs eerst geladen via de functie vereisenWebSocketondersteuningsmodule, gebruik danhttp.ServerDe klasse maakt een HTTP-serverinstantie, specificeert het luisterende poortnummer en het HTTP-verzoekpad en gebruikt vervolgens de upgradefunctie onder het opgegeven pad om het verzoek te upgraden naarWebSocketverbinding maakt de server automatisch eenWebSocketHet object biedt onopen, onmessage, onerror, onclose en andere gebeurtenissen en kan gegevens naar de client verzenden via de verzendfunctie.

gebruikWebSocketcliënt:

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

kan worden gemaakt doorSocketbijvoorbeeld, en specificeer eenWebSocketURL om de clientverbinding te voltooien.SocketDe klasse biedt onmesage, onerror, onclose en andere callback-functies en verzendfuncties, waarmee gegevens naar de server kunnen worden verzonden en door de server verzonden gegevens kunnen worden ontvangen.

bewust van moet zijn,WebSocketOndersteuningsmodules zijn gewoonWebSocketEen implementatie van het protocol dat bovenop het HTTP-protocol moet werken. Aan de serverzijde kan het HTTP-verzoek worden geconverteerd naarWebSocketverbinding, terwijl u aan de clientzijde moet slagenWebSocketProtocol-URL om het adres op te geven van de server waarmee verbinding moet worden gemaakt.

voorwerp

Message

Maak een websocket-berichtobject, zieWebSocketMessage

1
WebSocketMessage ws.Message;

Socket

WebSocketbezwaar maken, zieWebSocket

1
WebSocket ws.Socket;

statische functie

upgrade

Maak een websocket-protocolhandler, vanhttpOntvang een upgradeverzoek en schud de hand, genereerWebSocketvoorwerp

1
static Handler ws.upgrade(Function accept);

Oproepparameters:

  • accept: Functie, de verbindingssuccesverwerkingsfunctie, de callback zal twee parameters doorgeven, de eerste parameter is de ontvangenWebSocketObject, de tweede parameter is de handdrukHttpRequestvoorwerp

retour resultaat:


Maak een websocket-protocolhandler, vanhttpOntvang een upgradeverzoek en schud de hand, genereerWebSocketvoorwerp

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

Oproepparameters:

  • opts: Object, verbindingsopties, standaard is {}
  • accept: Functie, de verbindingssuccesverwerkingsfunctie, de callback zal twee parameters doorgeven, de eerste parameter is de ontvangenWebSocketObject, de tweede parameter is de handdrukHttpRequestvoorwerp

retour resultaat:

opts bevat extra opties voor het verzoek, de ondersteunde inhoud is als volgt:

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 }

constante

CONTINUE

Geef websocket-berichttype 0 op, dat een voortzettingsframe vertegenwoordigt

1
const ws.CONTINUE = 0;

TEXT

Geef websocket-berichttype 1 op, dat een tekstframe vertegenwoordigt

1
const ws.TEXT = 1;

BINARY

Geef websocket-berichttype 2 op, dat een binair frame vertegenwoordigt

1
const ws.BINARY = 2;

CLOSE

Geef websocket-berichttype 8 op, de verbinding is verbroken

1
const ws.CLOSE = 8;

PING

Geef websocket-berichttype 9 op, dat een ping-frame vertegenwoordigt

1
const ws.PING = 9;

PONG

Geef websocket-berichttype 10 op, dat een pong-frame vertegenwoordigt

1
const ws.PONG = 10;

CONNECTING

specificerenWebSocketstaat, wat aangeeft dat het verbinding maakt

1
const ws.CONNECTING = 0;

OPEN

specificerenWebSocketstaat, die de open staat aangeeft

1
const ws.OPEN = 1;

CLOSING

specificerenWebSocketStatus, die aangeeft dat het CLOSE-bericht is verzonden en wacht om te worden gesloten

1
const ws.CLOSING = 2;

CLOSED

specificerenWebSocketstaat, wat aangeeft dat het gesloten is

1
const ws.CLOSED = 3;