Módulo módulo básico

módulos

módulo de soporte websocket

WebSocketEl protocolo es un protocolo de comunicación full-duplex basado en el protocolo TCP, que establece una conexión ininterrumpida entre el navegador y el servidor, puede realizar una transmisión de datos bidireccional en tiempo real y puede admitir la transmisión de datos en cualquier formato. En fibjs,WebSocketEl módulo de soporte proporciona las interfaces API correspondientes para implementarWebSocketDesarrollo del lado del servidor y del lado del cliente.

Instrucciones:

1
var ws = require('ws');

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

En el código anterior, el fibjs integrado se carga primero a través de la función require.WebSocketMódulos de soporte, luego usehttp.ServerLa clase crea una instancia de servidor HTTP, especifica el número de puerto de escucha y la ruta de solicitud HTTP y luego usa la función de actualización en la ruta especificada para actualizar la solicitud aWebSocketconexión, el servidor crea automáticamente unaWebSocketEl objeto proporciona onopen, onmessage, onerror, onclose y otros eventos, y puede enviar datos al cliente a través de la función de envío.

usarWebSocketCliente:

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

Puede ser creado porSocketinstancia y especificar unaWebSocketURL para completar la conexión del cliente.SocketLa clase proporciona onmessage, onerror, onclose y otras funciones de devolución de llamada y funciones de envío, que pueden enviar datos al servidor y recibir datos enviados por el servidor.

hay que tener en cuenta es,WebSocketLos módulos de soporte son simplementeWebSocketUna implementación del protocolo que debe funcionar sobre el protocolo HTTP. En el lado del servidor, la función de actualización se puede utilizar para convertir solicitudes HTTP enWebSocketconexión, y en el lado del cliente, debe pasarWebSocketURL del protocolo para especificar la dirección del servidor al que se conectará.

objeto

Message

Cree un objeto de mensaje websocket, consulteWebSocketMessage

1
WebSocketMessage ws.Message;

Socket

WebSocketobjeto, verWebSocket

1
WebSocket ws.Socket;

función estática

upgrade

Cree un controlador de protocolo websocket desdehttpRecibir solicitud de actualización y protocolo de enlace, generarWebSocketobjeto

1
static Handler ws.upgrade(Function accept);

Parámetros de llamada:

  • accept: Función, función de procesamiento de conexión exitosa, la devolución de llamada pasará dos parámetros, el primer parámetro es el recibidoWebSocketObjeto, el segundo parámetro es el apretón de manos.HttpRequestobjeto

Resultados de devolución:


Cree un controlador de protocolo websocket desdehttpRecibir solicitud de actualización y protocolo de enlace, generarWebSocketobjeto

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

Parámetros de llamada:

  • opts: Objeto, opción de conexión, el valor predeterminado es {}
  • accept: Función, función de procesamiento de conexión exitosa, la devolución de llamada pasará dos parámetros, el primer parámetro es el recibidoWebSocketObjeto, el segundo parámetro es el apretón de manos.HttpRequestobjeto

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente 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 }

constante

CONTINUE

Especifique el tipo de mensaje 0 de websocket, que representa un marco de continuación.

1
const ws.CONTINUE = 0;

TEXT

Especifique el tipo de mensaje 1 de websocket, que representa un marco de texto

1
const ws.TEXT = 1;

BINARY

Especifique el tipo de mensaje 2 de websocket, que representa un marco binario

1
const ws.BINARY = 2;

CLOSE

Especifique el tipo de mensaje 8 de websocket, la conexión está cerrada

1
const ws.CLOSE = 8;

PING

Especifique el tipo de mensaje 9 de websocket, que representa un marco de ping

1
const ws.PING = 9;

PONG

Especifique el tipo de mensaje 10 de websocket, 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 estado abierto

1
const ws.OPEN = 1;

CLOSING

EspecificarWebSocketestado, indicando que el mensaje CLOSE ha sido enviado y está esperando ser cerrado.

1
const ws.CLOSING = 2;

CLOSED

EspecificarWebSocketestado, indicando que ha sido cerrado

1
const ws.CLOSED = 3;