ObjectWebSocketMessage
WebSocketMessage
síWebSocketUn tipus de missatge en un protocol que encapsulaWebSocketEs pot utilitzar el format de dades i els mètodes de processament de diversos missatges del protocol de transmissióWebSocketEl client i el servidor es comuniquen.
El constructor de la classe WebSocketMessage
admet un paràmetre de tipus de missatge especificat type
, que té tres valors opcionals:
ws.TEXT
: representa un missatge de tipus text, el contingut és una cadena.ws.BINARY
: representa un missatge de tipus binari, el contingut són dades binàries.
A més, també podeu WebSocketMessage.masked
especificar si cal aplicar una màscara modificant l'atribut i WebSocketMessage.compress
si cal comprimir-lo mitjançant l'atribut.
El codi següent és un exemple de servidor websocket. Quan un client es connecta, el servidor farà ressò del missatge rebut al client:
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();
En aquest programa, el mòdul de suport de websocket i el integrathttpmòdul i després creathttpobjecte de servei i especifiqueu la ruta de sol·licitud que s'ha de processar, trucantws.upgradeLa funció actualitza la sol·licitud de la ruta corresponent a una connexió websocket. Després de crear una connexió websocket, el servidor crearà automàticament unws.SocketObjecte i proporciona onopen, onmessage, onclose i altres API per gestionar quan un client es connecta, rep un missatge i tanca esdeveniments. En rebre un missatge, el servidor determinarà el tipus de missatge. Si és un tipus de text, tornarà a fer ressò del missatge rebut. L'anterior és un simple flux de processament del servidor websocket, que es pot modificar segons les necessitats reals.
relació hereditària
Constructor
WebSocketMessage
Constructor d'objectes de missatge de gestió de paquets
1
2
3
4new WebSocketMessage(Integer type = ws.BINARY,
Boolean masked = true,
Boolean compress = false,
Integer maxSize = 67108864);
Paràmetres de trucada:
- type: Sencer, tipus de missatge websocket, per defecte és websocket.BINARY
- masked: booleà, màscara de missatge de websocket, el valor predeterminat és true
- compress: Booleà, marca si el missatge està comprimit, el valor per defecte és fals
- maxSize: Sencer, mida màxima del paquet en MB, per defecte és 67108864 (64M)
constant
TEXT
Especifiqueu el tipus de missatge 1, que representa un tipus de text
1const WebSocketMessage.TEXT = 1;
BINARY
Especifiqueu el tipus de missatge 2, que representa un tipus binari
1const WebSocketMessage.BINARY = 2;
propietats dels membres
masked
Booleà, senyal de màscara de consulta i lectura de websocket, el valor predeterminat és true
1Boolean WebSocketMessage.masked;
compress
Booleà, consulta i lectura de l'estat de compressió del websocket, el valor predeterminat és fals
1Boolean WebSocketMessage.compress;
maxSize
Enter, consulteu i configureu la mida màxima del paquet en bytes, el valor predeterminat és 67108864 (64M)
1Integer WebSocketMessage.maxSize;
value
String, el contingut bàsic del missatge
1String WebSocketMessage.value;
params
NArray, els paràmetres bàsics del missatge
1readonly NArray WebSocketMessage.params;
type
Sencer, tipus de missatge
1Integer WebSocketMessage.type;
data
Valor, consulta les dades del missatge. Aquest atribut retornarà dades diferents segons el tipus de contingut. Quan sigui text, es retornarà el text.jsontornar quanjson, en cas contrari, retorna binari
1readonly Value WebSocketMessage.data;
body
SeekableStream, un objecte de flux que conté la part de dades del missatge
1SeekableStream WebSocketMessage.body;
length
Long, la longitud de la part de dades del missatge
1readonly Long WebSocketMessage.length;
stream
Stream, l'objecte de flux quan es consulta el missatge readFrom
1readonly Stream WebSocketMessage.stream;
lastError
Encadena, consulta i defineix l'últim error de processament del missatge
1String WebSocketMessage.lastError;
funció de membre
read
Llegeix dades de la mida especificada del flux. Aquest mètode és un àlies del mètode corresponent del cos.
1Buffer WebSocketMessage.read(Integer bytes = -1) async;
Paràmetres de trucada:
- bytes: Sencer, especifica la quantitat de dades que s'han de llegir. El valor predeterminat és llegir blocs de dades de mida aleatòria. La mida de les dades llegides depèn del dispositiu.
Resultats de retorn:
- Buffer, retorna les dades llegides del flux. Si no hi ha dades per llegir o la connexió s'interromp, es retorna null.
readAll
Llegeix totes les dades restants del flux. Aquest mètode és un àlies del mètode corresponent de body.
1Buffer WebSocketMessage.readAll() async;
Resultats de retorn:
- Buffer, retorna les dades llegides del flux. Si no hi ha dades per llegir o la connexió s'interromp, es retorna null.
write
Escriu les dades donades. Aquest mètode és un àlies del mètode corresponent al cos.
1WebSocketMessage.write(Buffer data) async;
Paràmetres de trucada:
- data:Buffer, donades les dades a escriure
json
Escriu les dades proporcionades en codificació JSON
1Value WebSocketMessage.json(Value data);
Paràmetres de trucada:
- data: Valor, tenint en compte les dades a escriure
Resultats de retorn:
- Value, aquest mètode no retorna dades
Analitzeu les dades del missatge com a codificació JSON
1Value WebSocketMessage.json();
Resultats de retorn:
- Value, retorna el resultat analitzat
pack
permsgpackLa codificació escriu les dades donades
1Value WebSocketMessage.pack(Value data);
Paràmetres de trucada:
- data: Valor, tenint en compte les dades a escriure
Resultats de retorn:
- Value, aquest mètode no retorna dades
permsgpackCodificació i anàlisi de les dades del missatge
1Value WebSocketMessage.pack();
Resultats de retorn:
- Value, retorna el resultat analitzat
end
Establir el final del processament del missatge actual,ChainEl processador no continua amb les transaccions posteriors
1WebSocketMessage.end();
isEnded
Consulta si el missatge actual ha acabat
1Boolean WebSocketMessage.isEnded();
Resultats de retorn:
- Boolean, torna veritable quan s'hagi acabat
clear
Esborra el contingut del missatge
1WebSocketMessage.clear();
sendTo
Envia un missatge amb format a l'objecte de flux donat
1WebSocketMessage.sendTo(Stream stm) async;
Paràmetres de trucada:
- stm:Stream, especifica l'objecte de flux que rep el missatge amb format
readFrom
Llegeix el missatge amb format de l'objecte del flux de memòria cau donat i analitza l'objecte emplenat
1WebSocketMessage.readFrom(Stream stm) async;
Paràmetres de trucada:
- stm:Stream, especifica l'objecte de flux per llegir missatges amb format
toString
Retorna la representació de cadena de l'objecte. En general, es retorna "[Objecte natiu]". L'objecte es pot tornar a implementar segons les seves pròpies característiques.
1String WebSocketMessage.toString();
Resultats de retorn:
- String, retorna la representació de cadena de l'objecte
toJSON
Retorna una representació en format JSON de l'objecte, generalment retornant una col·lecció de propietats llegibles definides per l'objecte.
1Value WebSocketMessage.toJSON(String key = "");
Paràmetres de trucada:
- key: Corda, no utilitzada
Resultats de retorn:
- Value, retorna un valor que conté JSON serializable