módulos
módulo de soporte websocket
WebSocketO protocolo é un protocolo de comunicación full-duplex baseado no protocolo TCP. Establece unha conexión ininterrompida entre o navegador e o servidor, pode realizar a transmisión de datos bidireccional en tempo real e admite a transmisión de datos en calquera formato. En fibjs,WebSocketO módulo de soporte proporciona as interfaces API correspondentes para implementarWebSocketDesenvolvemento do lado do servidor e do cliente.
Instrucións:
1var ws = require('ws');
Crear 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();
No código anterior, o fibjs incorporado cárgase primeiro mediante a función require.WebSocketMódulos de soporte, despois úsaohttp.ServerA clase crea unha instancia do servidor HTTP, especifica o número de porto de escoita e o camiño da solicitude HTTP e, a continuación, usa a función de actualización baixo o camiño especificado para actualizar a solicitude aWebSocketconexión, o servidor crea automaticamente unWebSocketO obxecto ofrece eventos onopen, onmessage, onerror, onclose e outros, e pode enviar datos ao cliente a través da función de envío.
usarWebSocketClienta:
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);
Pode ser creado porSocketinstancia e especifique aWebSocketURL para completar a conexión do cliente.SocketA clase ofrece funcións onmessage, onerror, onclose e outras de devolución de chamada e funcións de envío, que poden enviar datos ao servidor e recibir datos enviados polo servidor.
hai que ter en conta é,WebSocketOs módulos de soporte son simplementeWebSocketUnha implementación do protocolo que debe funcionar enriba do protocolo HTTP. No lado do servidor, a función de actualización pódese usar para converter solicitudes HTTP enWebSocketconexión, e no lado do cliente, cómpre pasarWebSocketURL do protocolo para especificar o enderezo do servidor que se vai conectar.
obxecto
Message
Cree un obxecto de mensaxe websocket, consulteWebSocketMessage
1WebSocketMessage ws.Message;
Socket
WebSocketobxecto, verWebSocket
1WebSocket ws.Socket;
función estática
upgrade
Crear un controlador de protocolo websocket desdehttpRecibir solicitude de actualización e apretón de mans, xerarWebSocketobxecto
1static Handler ws.upgrade(Function accept);
Parámetros de chamada:
- accept: Función, función de procesamento do éxito da conexión, a devolución de chamada pasará dous parámetros, o primeiro parámetro é o recibidoWebSocketObxecto, o segundo parámetro é o apretón de mansHttpRequestobxecto
Resultados de devolución:
- Handler, devolve o manejador de protocolo, pódese usar conHttpServer,Chain,RoutingAgardando polo atraque```
Crear un controlador de protocolo websocket desdehttpRecibir solicitude de actualización e apretón de mans, xerarWebSocketobxecto
1
2static Handler ws.upgrade(Object opts,
Function accept);
Parámetros de chamada:
- opts: Obxecto, opción de conexión, o valor predeterminado é {}
- accept: Función, función de procesamento do éxito da conexión, a devolución de chamada pasará dous parámetros, o primeiro parámetro é o recibidoWebSocketObxecto, o segundo parámetro é o apretón de mansHttpRequestobxecto
Resultados de devolución:
- Handler, devolve o manejador de protocolo, pódese usar conHttpServer,Chain,RoutingAgardando polo atraque
opts contén opcións adicionais para a solicitude, admitidas como segue:
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
Especifique o tipo de mensaxe websocket 0, que representa un marco de continuación
1const ws.CONTINUE = 0;
TEXT
Especifique o tipo de mensaxe de websocket 1, que representa un marco de texto
1const ws.TEXT = 1;
BINARY
Especifique o tipo de mensaxe websocket 2, que representa un marco binario
1const ws.BINARY = 2;
CLOSE
Especifique o tipo de mensaxe websocket 8, a conexión está pechada
1const ws.CLOSE = 8;
PING
Especifique o tipo de mensaxe de websocket 9, que representa un marco de ping
1const ws.PING = 9;
PONG
Especifique o tipo de mensaxe websocket 10, que representa un marco pong
1const ws.PONG = 10;
CONNECTING
EspecificarWebSocketestado, indicando que se está conectando
1const ws.CONNECTING = 0;
OPEN
EspecificarWebSocketestado, indicando o estado aberto
1const ws.OPEN = 1;
CLOSING
EspecificarWebSocketestado, indicando que a mensaxe CLOSE foi enviada e está agardando a ser pechada.
1const ws.CLOSING = 2;
CLOSED
EspecificarWebSocketestado, indicando que foi pechado
1const ws.CLOSED = 3;