Module basismodule

modules

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 tweerichtingsdatatransmissie kan realiseren en datatransmissie in elk formaat ondersteunt. In fibjs,WebSocketDe ondersteuningsmodule biedt overeenkomstige API-interfaces om te implementerenWebSocketOntwikkeling aan de serverzijde en aan de clientzijde.

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 require-functie.WebSocketOndersteun modules en gebruik vervolgenshttp.ServerDe klasse maakt een HTTP-serverinstantie aan, specificeert het luisterpoortnummer 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 via de verzendfunctie gegevens naar de client sturen.

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 aangemaakt doorSocketinstantie en specificeer aWebSocketURL om de clientverbinding te voltooien.SocketDe klasse biedt onmessage, onerror, onclose en andere callback-functies en send-functies, die gegevens naar de server kunnen verzenden en gegevens kunnen ontvangen die door de server zijn verzonden.

moet er rekening mee houden,WebSocketOndersteuningsmodules zijn eenvoudigWebSocketEen implementatie van het protocol dat bovenop het HTTP-protocol moet werken. Aan de serverzijde kan de upgradefunctie worden gebruikt om HTTP-verzoeken om te zetten inWebSocketverbinding, en aan de clientzijde moet u slagenWebSocketProtocol-URL om het serveradres op te geven waarmee verbinding moet worden gemaakt.

voorwerp

Message

Maak een websocket-berichtobject, zieWebSocketMessage

1
WebSocketMessage ws.Message;

Socket

WebSocketvoorwerp, zieWebSocket

1
WebSocket ws.Socket;

statische functie

upgrade

Maak een websocket-protocolhandler vanhttpOntvang een upgradeverzoek en handshake, genereerWebSocketvoorwerp

1
static Handler ws.upgrade(Function accept);

Oproepparameters:

  • accept: Functie, verwerkingsfunctie voor verbindingssucces, de callback geeft twee parameters door, de eerste parameter is de ontvangenWebSocketObject, de tweede parameter is de handdrukHttpRequestvoorwerp

Resultaten retourneren:


Maak een websocket-protocolhandler vanhttpOntvang een upgradeverzoek en handshake, genereerWebSocketvoorwerp

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

Oproepparameters:

  • opts: Object, verbindingsoptie, standaard is {}
  • accept: Functie, verwerkingsfunctie voor verbindingssucces, de callback geeft twee parameters door, de eerste parameter is de ontvangenWebSocketObject, de tweede parameter is de handdrukHttpRequestvoorwerp

Resultaten retourneren:

opts bevat extra opties voor het verzoek, die als volgt worden ondersteund:

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, wat een vervolgframe vertegenwoordigt

1
const ws.CONTINUE = 0;

TEXT

Geef websocketberichttype 1 op, dat een tekstframe vertegenwoordigt

1
const ws.TEXT = 1;

BINARY

Geef websocketberichttype 2 op, dat een binair frame vertegenwoordigt

1
const ws.BINARY = 2;

CLOSE

Geef websocketberichttype 8 op, de verbinding is gesloten

1
const ws.CLOSE = 8;

PING

Geef websocketberichttype 9 op, dat een pingframe vertegenwoordigt

1
const ws.PING = 9;

PONG

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

1
const ws.PONG = 10;

CONNECTING

SpecificeerWebSocketstatus, wat aangeeft dat er verbinding wordt gemaakt

1
const ws.CONNECTING = 0;

OPEN

SpecificeerWebSocketstatus, wat de open status aangeeft

1
const ws.OPEN = 1;

CLOSING

SpecificeerWebSocketstatus, wat aangeeft dat het CLOSE-bericht is verzonden en wacht om te worden gesloten.

1
const ws.CLOSING = 2;

CLOSED

SpecificeerWebSocketstatus, wat aangeeft dat deze is gesloten

1
const ws.CLOSED = 3;