Obxecto obxecto incorporado

ObjectWebSocketMessage

WebSocketMessagesiWebSocketUn tipo de mensaxe nun protocolo que encapsulaWebSocketO formato de datos e os métodos de procesamento de varias mensaxes no protocolo de transmisión pódense utilizar paraWebSocketO cliente e o servidor comunícanse.

O construtor da clase WebSocketMessageadmite un parámetro de tipo de mensaxe especificado type, que ten tres valores opcionais:

  • ws.TEXT: Representa unha mensaxe de tipo texto, o contido é unha cadea.
  • ws.BINARY: Representa unha mensaxe de tipo binario, o contido son datos binarios.

Ademais, tamén pode WebSocketMessage.maskedespecificar se é necesario aplicar unha máscara modificando o atributo e WebSocketMessage.compressse é necesaria a compresión mediante o atributo.

O seguinte código é un exemplo de servidor websocket. Cando un cliente se conecta, o servidor devolverá a mensaxe recibida ao 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();

Neste programa, o módulo de soporte websocket e o módulo integradohttpmódulo e despois creadohttpobxecto de servizo e especifique o camiño da solicitude que se vai procesar, chamandows.upgradeA función actualiza a solicitude da ruta correspondente a unha conexión websocket. Despois de crear unha conexión websocket, o servidor creará automaticamente unws.SocketObxecta e ofrece onopen, onmessage, onclose e outras API para xestionar cando un cliente se conecta, recibe unha mensaxe e pecha eventos. Ao recibir unha mensaxe, o servidor determinará o tipo da mensaxe. Se é un tipo de texto, devolverá a mensaxe recibida. O anterior é un fluxo de procesamento do servidor websocket sinxelo, que se pode modificar segundo as necesidades reais.

relación de herdanza

Construtor

WebSocketMessage

Construtor de obxectos de mensaxe de manexo de paquetes

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

Parámetros de chamada:

  • type: Número enteiro, tipo de mensaxe websocket, o predeterminado é websocket.BINARY
  • masked: Booleano, máscara de mensaxe de websocket, o valor predeterminado é verdadeiro
  • compress: Booleano, marca se a mensaxe está comprimida, o valor predeterminado é falso
  • maxSize: Número enteiro, tamaño máximo do paquete en MB, o valor predeterminado é 67108864 (64M)

constante

TEXT

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

1
const WebSocketMessage.TEXT = 1;

BINARY

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

1
const WebSocketMessage.BINARY = 2;

propiedades dos membros

masked

Booleano, consulta e lectura da bandeira de máscara de websocket, o valor predeterminado é verdadeiro

1
Boolean WebSocketMessage.masked;

compress

Booleano, consulta e lectura de estado de compresión do websocket, o valor predeterminado é falso

1
Boolean WebSocketMessage.compress;

maxSize

Número enteiro, consulta e establece o tamaño máximo do paquete en bytes, o valor predeterminado é 67108864 (64M)

1
Integer WebSocketMessage.maxSize;

value

String, o contido básico da mensaxe

1
String WebSocketMessage.value;

params

NArray, os parámetros básicos da mensaxe

1
readonly NArray WebSocketMessage.params;

type

Número enteiro, tipo de mensaxe

1
Integer WebSocketMessage.type;

data

Valor, consulta os datos da mensaxe. Este atributo devolverá datos diferentes segundo o tipo de contido. Cando sexa texto, devolverase o texto.jsonvolver candojson, se non, devolve binario

1
readonly Value WebSocketMessage.data;

body

SeekableStream, un obxecto de fluxo que contén a parte de datos da mensaxe

1
SeekableStream WebSocketMessage.body;

length

Long, a lonxitude da parte de datos da mensaxe

1
readonly Long WebSocketMessage.length;

stream

Stream, o obxecto de fluxo cando se consulta a mensaxe readFrom

1
readonly Stream WebSocketMessage.stream;

lastError

Cadena, consulta e establece o último erro de procesamento da mensaxe

1
String WebSocketMessage.lastError;

función de membro

read

Le datos do tamaño especificado do fluxo. Este método é un alias do método correspondente do corpo.

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

Parámetros de chamada:

  • bytes: Número enteiro, especifica a cantidade de datos que se van ler. O valor predeterminado é ler bloques de datos de tamaño aleatorio. O tamaño dos datos lidos depende do dispositivo.

Resultados de devolución:

  • Buffer, devolve os datos lidos do fluxo. Se non hai datos para ler ou se interrompe a conexión, devólvese nulo.

readAll

Le todos os datos restantes do fluxo. Este método é un alias do método correspondente do corpo.

1
Buffer WebSocketMessage.readAll() async;

Resultados de devolución:

  • Buffer, devolve os datos lidos do fluxo. Se non hai datos para ler ou se interrompe a conexión, devólvese nulo.

write

Escribe os datos dados. Este método é un alias do método correspondente no corpo.

1
WebSocketMessage.write(Buffer data) async;

Parámetros de chamada:

  • data:Buffer, dados os datos a escribir

json

Escribe os datos proporcionados en codificación JSON

1
Value WebSocketMessage.json(Value data);

Parámetros de chamada:

  • data: Valor, dados os datos a escribir

Resultados de devolución:

  • Value, este método non devolve datos

Analiza os datos da mensaxe como codificación JSON

1
Value WebSocketMessage.json();

Resultados de devolución:

  • Value, devolve o resultado analizado

pack

pormsgpackA codificación escribe os datos dados

1
Value WebSocketMessage.pack(Value data);

Parámetros de chamada:

  • data: Valor, dados os datos a escribir

Resultados de devolución:

  • Value, este método non devolve datos

pormsgpackCodificación e análise dos datos da mensaxe

1
Value WebSocketMessage.pack();

Resultados de devolución:

  • Value, devolve o resultado analizado

end

Establece o final do procesamento da mensaxe actual,ChainO procesador non continúa coas transaccións posteriores

1
WebSocketMessage.end();

isEnded

Consulta se a mensaxe actual rematou

1
Boolean WebSocketMessage.isEnded();

Resultados de devolución:

  • Boolean, devolve verdadeiro cando remate

clear

Borrar o contido da mensaxe

1
WebSocketMessage.clear();

sendTo

Envía unha mensaxe con formato ao obxecto de fluxo indicado

1
WebSocketMessage.sendTo(Stream stm) async;

Parámetros de chamada:

  • stm:Stream, especifica o obxecto de fluxo que recibe a mensaxe con formato

readFrom

Le a mensaxe con formato do obxecto de fluxo de caché indicado e analiza o obxecto poboado

1
WebSocketMessage.readFrom(Stream stm) async;

Parámetros de chamada:

  • stm:Stream, especifica o obxecto de fluxo para ler mensaxes con formato

toString

Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.

1
String WebSocketMessage.toString();

Resultados de devolución:

  • String, devolve a representación en cadea do obxecto

toJSON

Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.

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

Parámetros de chamada:

  • key: Cadena, non usada

Resultados de devolución:

  • Value, devolve un valor que contén JSON serializable