Objeto incorporado

ObjetoWebSocketMensaje

WebSocketMessageWebSocketUn tipo de mensaje en un protocolo que encapsulaWebSocketEl formato de datos y los métodos de procesamiento de varios mensajes en el protocolo de transmisión se pueden utilizar paraWebSocketEl cliente y el servidor se comunican.

El constructor de la clase WebSocketMessageadmite un parámetro de tipo de mensaje específico type, que tiene tres valores opcionales:

  • ws.TEXT: Representa un mensaje de tipo texto, el contenido es una cadena.
  • ws.BINARY: Representa un mensaje de tipo binario, el contenido son datos binarios.

Además, también puede WebSocketMessage.maskedespecificar si es necesario aplicar una máscara modificando el atributo y WebSocketMessage.compresssi se requiere compresión utilizando el atributo.

El siguiente código es un ejemplo de un servidor websocket. Cuando un cliente se conecta, el servidor devolverá el mensaje recibido al cliente:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
var ws = require('ws'); var http = require('http'); var svr = new http.Server(8080, { '/websocket': ws.upgrade((conn, req) => { // emit message event conn.onmessage = e => { if (e.data.type == ws.TEXT) { console.log(`接收到客户端发来的消息 ${e.data}`); conn.send(e.data); } else { console.error(`收到未知类型消息 ${e.data.type}`); } } conn.onclose = e => console.log('离开了一个客户端'); }) }); svr.start();

En este programa, el módulo de soporte websocket y el integradohttpmódulo y luego creadohttpobjeto de servicio y especifique la ruta de solicitud que se procesará, llamandows.upgradeLa función actualiza la solicitud de la ruta correspondiente a una conexión websocket. Después de crear una conexión websocket, el servidor creará automáticamente unaws.SocketObjeto y proporciona API onopen, onmessage, onclose y otras para manejar cuando un cliente se conecta, recibe un mensaje y cierra eventos. Al recibir un mensaje, el servidor determinará el tipo de mensaje. Si es de tipo texto, devolverá el mensaje recibido. Lo anterior es un flujo de procesamiento de servidor websocket simple, que se puede modificar según las necesidades reales.

relación de herencia

Constructor

WebSocketMessage

Constructor de objetos de mensaje de manejo de paquetes

1 2 3 4
new WebSocketMessage(Integer type = ws.BINARY, Boolean masked = true, Boolean compress = false, Integer maxSize = 67108864);

Parámetros de llamada:

  • type: Entero, tipo de mensaje websocket, el valor predeterminado es websocket.BINARY
  • masked: booleano, máscara de mensaje websocket, el valor predeterminado es verdadero
  • compress: Booleano, marca si el mensaje está comprimido, el valor predeterminado es falso
  • maxSize: Entero, tamaño máximo de paquete en MB, el valor predeterminado es 67108864 (64M)

constante

TEXT

Especifique el tipo de mensaje 1, que representa un tipo de texto.

1
const WebSocketMessage.TEXT = 1;

BINARY

Especifique el tipo de mensaje 2, que representa un tipo binario.

1
const WebSocketMessage.BINARY = 2;

propiedades de miembros

masked

Booleano, consulta y lee el indicador de máscara de websocket, el valor predeterminado es verdadero

1
Boolean WebSocketMessage.masked;

compress

Booleano, consulta y lee el estado de compresión de websocket, el valor predeterminado es falso

1
Boolean WebSocketMessage.compress;

maxSize

Entero, consulta y establece el tamaño máximo de paquete en bytes, el valor predeterminado es 67108864 (64M)

1
Integer WebSocketMessage.maxSize;

value

Cadena, el contenido básico del mensaje.

1
String WebSocketMessage.value;

params

NArray, los parámetros básicos del mensaje.

1
readonly NArray WebSocketMessage.params;

type

Entero, tipo de mensaje

1
Integer WebSocketMessage.type;

data

Valor, consulta los datos del mensaje. Este atributo devolverá diferentes datos según el tipo de contenido. Cuando sea texto, se devolverá el texto.jsonregresar cuandojson, de lo contrario devuelve binario

1
readonly Value WebSocketMessage.data;

body

SeekableStream, un objeto de flujo que contiene la parte de datos del mensaje

1
SeekableStream WebSocketMessage.body;

length

Long, la longitud de la parte de datos del mensaje.

1
readonly Long WebSocketMessage.length;

stream

Stream, el objeto de flujo al consultar el mensaje readFrom

1
readonly Stream WebSocketMessage.stream;

lastError

Cadena, consulta y establece el último error de procesamiento de mensajes

1
String WebSocketMessage.lastError;

función miembro

read

Lee datos de tamaño especificado de la secuencia. Este método es un alias del método correspondiente del cuerpo.

1
Buffer WebSocketMessage.read(Integer bytes = -1) async;

Parámetros de llamada:

  • bytes: Entero, especifica la cantidad de datos que se leerán. El valor predeterminado es leer bloques de datos de tamaño aleatorio. El tamaño de los datos leídos depende del dispositivo.

Resultados de devolución:

  • Buffer, devuelve los datos leídos de la secuencia. Si no hay datos para leer o la conexión se interrumpe, se devuelve nulo.

readAll

Lea todos los datos restantes de la secuencia. Este método es un alias del método correspondiente del cuerpo.

1
Buffer WebSocketMessage.readAll() async;

Resultados de devolución:

  • Buffer, devuelve los datos leídos de la secuencia. Si no hay datos para leer o la conexión se interrumpe, se devuelve nulo.

write

Escribe los datos dados. Este método es un alias del método correspondiente en el cuerpo.

1
WebSocketMessage.write(Buffer data) async;

Parámetros de llamada:

  • data:Buffer, dados los datos a escribir

json

Escribe los datos dados en codificación JSON.

1
Value WebSocketMessage.json(Value data);

Parámetros de llamada:

  • data: Valor, dados los datos a escribir

Resultados de devolución:

  • Value, este método no devuelve datos

Analizar los datos del mensaje como codificación JSON.

1
Value WebSocketMessage.json();

Resultados de devolución:

  • Value, devuelve el resultado analizado

pack

pormsgpackLa codificación escribe los datos dados.

1
Value WebSocketMessage.pack(Value data);

Parámetros de llamada:

  • data: Valor, dados los datos a escribir

Resultados de devolución:

  • Value, este método no devuelve datos

pormsgpackCodificar y analizar los datos del mensaje.

1
Value WebSocketMessage.pack();

Resultados de devolución:

  • Value, devuelve el resultado analizado

end

Establecer el final del procesamiento del mensaje actual,ChainEl procesador no continúa con transacciones posteriores.

1
WebSocketMessage.end();

isEnded

Consultar si el mensaje actual ha finalizado

1
Boolean WebSocketMessage.isEnded();

Resultados de devolución:

  • Boolean, devuelve verdadero cuando termina

clear

Borrar contenido del mensaje

1
WebSocketMessage.clear();

sendTo

Envía un mensaje formateado al objeto de flujo dado

1
WebSocketMessage.sendTo(Stream stm) async;

Parámetros de llamada:

  • stm:Stream, especifica el objeto de flujo que recibe el mensaje formateado

readFrom

Lee el mensaje formateado del objeto de flujo de caché dado y analiza el objeto poblado

1
WebSocketMessage.readFrom(Stream stm) async;

Parámetros de llamada:

  • stm:Stream, especifica el objeto de flujo para leer mensajes formateados.

toString

Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.

1
String WebSocketMessage.toString();

Resultados de devolución:

  • String, devuelve la representación de cadena del objeto

toJSON

Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.

1
Value WebSocketMessage.toJSON(String key = "");

Parámetros de llamada:

  • key: Cadena, no utilizada

Resultados de devolución:

  • Value, devuelve un valor que contiene JSON serializable