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:
1var ws = require('ws');
Maak een server aan:
1
2
3
4
5
6
7
8
9var 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
4var 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
1WebSocketMessage ws.Message;
Socket
WebSocketbezwaar maken, zieWebSocket
1WebSocket ws.Socket;
statische functie
upgrade
Maak een websocket-protocolhandler, vanhttpOntvang een upgradeverzoek en schud de hand, genereerWebSocketvoorwerp
1static 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:
- Handler, retourneert een protocolhandler die kan worden gebruikt metHttpServer,Chain,RoutingWachten op docking```
Maak een websocket-protocolhandler, vanhttpOntvang een upgradeverzoek en schud de hand, genereerWebSocketvoorwerp
1
2static 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:
- Handler, retourneert een protocolhandler die kan worden gebruikt metHttpServer,Chain,RoutingWachten op aanmeren
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
1const ws.CONTINUE = 0;
TEXT
Geef websocket-berichttype 1 op, dat een tekstframe vertegenwoordigt
1const ws.TEXT = 1;
BINARY
Geef websocket-berichttype 2 op, dat een binair frame vertegenwoordigt
1const ws.BINARY = 2;
CLOSE
Geef websocket-berichttype 8 op, de verbinding is verbroken
1const ws.CLOSE = 8;
PING
Geef websocket-berichttype 9 op, dat een ping-frame vertegenwoordigt
1const ws.PING = 9;
PONG
Geef websocket-berichttype 10 op, dat een pong-frame vertegenwoordigt
1const ws.PONG = 10;
CONNECTING
specificerenWebSocketstaat, wat aangeeft dat het verbinding maakt
1const ws.CONNECTING = 0;
OPEN
specificerenWebSocketstaat, die de open staat aangeeft
1const ws.OPEN = 1;
CLOSING
specificerenWebSocketStatus, die aangeeft dat het CLOSE-bericht is verzonden en wacht om te worden gesloten
1const ws.CLOSING = 2;
CLOSED
specificerenWebSocketstaat, wat aangeeft dat het gesloten is
1const ws.CLOSED = 3;