Objecte objecte incorporat

ObjectWebSocketMessage

WebSocketMessageWebSocketUn 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 WebSocketMessageadmet 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.maskedespecificar si cal aplicar una màscara modificant l'atribut i WebSocketMessage.compresssi 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 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 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 4
new 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

1
const WebSocketMessage.TEXT = 1;

BINARY

Especifiqueu el tipus de missatge 2, que representa un tipus binari

1
const WebSocketMessage.BINARY = 2;

propietats dels membres

masked

Booleà, senyal de màscara de consulta i lectura de websocket, el valor predeterminat és true

1
Boolean WebSocketMessage.masked;

compress

Booleà, consulta i lectura de l'estat de compressió del websocket, el valor predeterminat és fals

1
Boolean WebSocketMessage.compress;

maxSize

Enter, consulteu i configureu la mida màxima del paquet en bytes, el valor predeterminat és 67108864 (64M)

1
Integer WebSocketMessage.maxSize;

value

String, el contingut bàsic del missatge

1
String WebSocketMessage.value;

params

NArray, els paràmetres bàsics del missatge

1
readonly NArray WebSocketMessage.params;

type

Sencer, tipus de missatge

1
Integer 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

1
readonly Value WebSocketMessage.data;

body

SeekableStream, un objecte de flux que conté la part de dades del missatge

1
SeekableStream WebSocketMessage.body;

length

Long, la longitud de la part de dades del missatge

1
readonly Long WebSocketMessage.length;

stream

Stream, l'objecte de flux quan es consulta el missatge readFrom

1
readonly Stream WebSocketMessage.stream;

lastError

Encadena, consulta i defineix l'últim error de processament del missatge

1
String 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.

1
Buffer 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.

1
Buffer 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.

1
WebSocketMessage.write(Buffer data) async;

Paràmetres de trucada:

  • data:Buffer, donades les dades a escriure

json

Escriu les dades proporcionades en codificació JSON

1
Value 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

1
Value WebSocketMessage.json();

Resultats de retorn:

  • Value, retorna el resultat analitzat

pack

permsgpackLa codificació escriu les dades donades

1
Value 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

1
Value 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

1
WebSocketMessage.end();

isEnded

Consulta si el missatge actual ha acabat

1
Boolean WebSocketMessage.isEnded();

Resultats de retorn:

  • Boolean, torna veritable quan s'hagi acabat

clear

Esborra el contingut del missatge

1
WebSocketMessage.clear();

sendTo

Envia un missatge amb format a l'objecte de flux donat

1
WebSocketMessage.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

1
WebSocketMessage.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.

1
String 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.

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

Paràmetres de trucada:

  • key: Corda, no utilitzada

Resultats de retorn:

  • Value, retorna un valor que conté JSON serializable