Módulo módulo básico

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:

1
var ws = require('ws');

Crear un servidor:

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

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 4
var 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

1
WebSocketMessage ws.Message;

Socket

WebSocketobxecto, verWebSocket

1
WebSocket ws.Socket;

función estática

upgrade

Crear un controlador de protocolo websocket desdehttpRecibir solicitude de actualización e apretón de mans, xerarWebSocketobxecto

1
static 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:


Crear un controlador de protocolo websocket desdehttpRecibir solicitude de actualización e apretón de mans, xerarWebSocketobxecto

1 2
static 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:

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

1
const ws.CONTINUE = 0;

TEXT

Especifique o tipo de mensaxe de websocket 1, que representa un marco de texto

1
const ws.TEXT = 1;

BINARY

Especifique o tipo de mensaxe websocket 2, que representa un marco binario

1
const ws.BINARY = 2;

CLOSE

Especifique o tipo de mensaxe websocket 8, a conexión está pechada

1
const ws.CLOSE = 8;

PING

Especifique o tipo de mensaxe de websocket 9, que representa un marco de ping

1
const ws.PING = 9;

PONG

Especifique o tipo de mensaxe websocket 10, que representa un marco pong

1
const ws.PONG = 10;

CONNECTING

EspecificarWebSocketestado, indicando que se está conectando

1
const ws.CONNECTING = 0;

OPEN

EspecificarWebSocketestado, indicando o estado aberto

1
const ws.OPEN = 1;

CLOSING

EspecificarWebSocketestado, indicando que a mensaxe CLOSE foi enviada e está agardando a ser pechada.

1
const ws.CLOSING = 2;

CLOSED

EspecificarWebSocketestado, indicando que foi pechado

1
const ws.CLOSED = 3;