mòduls
mòdul de suport de websocket
WebSocketEl protocol és un protocol de comunicació full-duplex basat en el protocol TCP que estableix una connexió ininterrompuda entre el navegador i el servidor, pot realitzar transmissió de dades bidireccional en temps real i pot suportar la transmissió de dades en qualsevol format. En fibjs,WebSocketEl mòdul de suport proporciona les interfícies API corresponents per implementarWebSocketDesenvolupament del costat del servidor i del costat del client.
Instruccions:
1var ws = require('ws');
Crea un servidor:
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();
Al codi anterior, el fibjs integrat es carrega primer mitjançant la funció require.WebSocketMòduls de suport i després utilitzarhttp.ServerLa classe crea una instància del servidor HTTP, especifica el número de port d'escolta i el camí de la sol·licitud HTTP i, a continuació, utilitza la funció d'actualització sota el camí especificat per actualitzar la sol·licitud aWebSocketconnexió, el servidor crea automàticament aWebSocketL'objecte proporciona onopen, onmessage, onerror, onclose i altres esdeveniments, i pot enviar dades al client mitjançant la funció d'enviament.
utilitzarWebSocketClient:
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);
Pot ser creat perSocketexemple i especifiqueu aWebSocketURL per completar la connexió del client.SocketLa classe proporciona onmessage, onerror, onclose i altres funcions de devolució de trucada i funcions d'enviament, que poden enviar dades al servidor i rebre dades enviades pel servidor.
cal ser conscient,WebSocketEls mòduls de suport són senzillsWebSocketUna implementació del protocol que ha de funcionar a la part superior del protocol HTTP. Al costat del servidor, la funció d'actualització es pot utilitzar per convertir les sol·licituds HTTP enWebSocketconnexió, i pel costat del client, cal passarWebSocketURL del protocol per especificar l'adreça del servidor que s'ha de connectar.
objecte
Message
Creeu un objecte de missatge websocket, vegeuWebSocketMessage
1WebSocketMessage ws.Message;
Socket
WebSocketobjecte, veureWebSocket
1WebSocket ws.Socket;
funció estàtica
upgrade
Creeu un gestor de protocols websocket des dehttpRebre la sol·licitud d'actualització i encaixada de mans, generarWebSocketobjecte
1static Handler ws.upgrade(Function accept);
Paràmetres de trucada:
- accept: Funció, funció de processament d'èxit de connexió, la devolució de trucada passarà dos paràmetres, el primer paràmetre és el rebutWebSocketObjecte, el segon paràmetre és l'encaixada de mansHttpRequestobjecte
Resultats de retorn:
- Handler, retorna el controlador de protocol, es pot utilitzar ambHttpServer,Chain,RoutingEsperant l'acoblament```
Creeu un gestor de protocols websocket des dehttpRebre la sol·licitud d'actualització i encaixada de mans, generarWebSocketobjecte
1
2static Handler ws.upgrade(Object opts,
Function accept);
Paràmetres de trucada:
- opts: Objecte, opció de connexió, per defecte és {}
- accept: Funció, funció de processament d'èxit de connexió, la devolució de trucada passarà dos paràmetres, el primer paràmetre és el rebutWebSocketObjecte, el segon paràmetre és l'encaixada de mansHttpRequestobjecte
Resultats de retorn:
- Handler, retorna el controlador de protocol, es pot utilitzar ambHttpServer,Chain,RoutingEsperant l'acoblament
opts conté opcions addicionals per a la sol·licitud, compatibles de la següent manera:
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
}
constant
CONTINUE
Especifiqueu el tipus de missatge websocket 0, que representa un marc de continuació
1const ws.CONTINUE = 0;
TEXT
Especifiqueu el tipus de missatge de websocket 1, que representa un marc de text
1const ws.TEXT = 1;
BINARY
Especifiqueu el tipus de missatge websocket 2, que representa un marc binari
1const ws.BINARY = 2;
CLOSE
Especifiqueu el tipus de missatge websocket 8, la connexió està tancada
1const ws.CLOSE = 8;
PING
Especifiqueu el tipus de missatge websocket 9, que representa un marc de ping
1const ws.PING = 9;
PONG
Especifiqueu el tipus de missatge de websocket 10, que representa un marc de pong
1const ws.PONG = 10;
CONNECTING
EspecificarWebSocketestat, que indica que s'està connectant
1const ws.CONNECTING = 0;
OPEN
EspecificarWebSocketestat, que indica l'estat obert
1const ws.OPEN = 1;
CLOSING
EspecificarWebSocketestat, indicant que s'ha enviat el missatge TANCAR i que està esperant a ser tancat.
1const ws.CLOSING = 2;
CLOSED
EspecificarWebSocketestat, indicant que ha estat tancat
1const ws.CLOSED = 3;