ObjectWebSocketMessage
WebSocketMessage
siWebSocketUn 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 WebSocketMessage
admite 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.masked
especificar se é necesario aplicar unha máscara modificando o atributo e WebSocketMessage.compress
se é 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
18var 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
4new 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
1const WebSocketMessage.TEXT = 1;
BINARY
Especifique o tipo de mensaxe 2, que representa un tipo binario
1const WebSocketMessage.BINARY = 2;
propiedades dos membros
masked
Booleano, consulta e lectura da bandeira de máscara de websocket, o valor predeterminado é verdadeiro
1Boolean WebSocketMessage.masked;
compress
Booleano, consulta e lectura de estado de compresión do websocket, o valor predeterminado é falso
1Boolean WebSocketMessage.compress;
maxSize
Número enteiro, consulta e establece o tamaño máximo do paquete en bytes, o valor predeterminado é 67108864 (64M)
1Integer WebSocketMessage.maxSize;
value
String, o contido básico da mensaxe
1String WebSocketMessage.value;
params
NArray, os parámetros básicos da mensaxe
1readonly NArray WebSocketMessage.params;
type
Número enteiro, tipo de mensaxe
1Integer 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
1readonly Value WebSocketMessage.data;
body
SeekableStream, un obxecto de fluxo que contén a parte de datos da mensaxe
1SeekableStream WebSocketMessage.body;
length
Long, a lonxitude da parte de datos da mensaxe
1readonly Long WebSocketMessage.length;
stream
Stream, o obxecto de fluxo cando se consulta a mensaxe readFrom
1readonly Stream WebSocketMessage.stream;
lastError
Cadena, consulta e establece o último erro de procesamento da mensaxe
1String 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.
1Buffer 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.
1Buffer 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.
1WebSocketMessage.write(Buffer data) async;
Parámetros de chamada:
- data:Buffer, dados os datos a escribir
json
Escribe os datos proporcionados en codificación JSON
1Value 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
1Value WebSocketMessage.json();
Resultados de devolución:
- Value, devolve o resultado analizado
pack
pormsgpackA codificación escribe os datos dados
1Value 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
1Value 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
1WebSocketMessage.end();
isEnded
Consulta se a mensaxe actual rematou
1Boolean WebSocketMessage.isEnded();
Resultados de devolución:
- Boolean, devolve verdadeiro cando remate
clear
Borrar o contido da mensaxe
1WebSocketMessage.clear();
sendTo
Envía unha mensaxe con formato ao obxecto de fluxo indicado
1WebSocketMessage.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
1WebSocketMessage.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.
1String 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.
1Value 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