Oggetto oggetto incorporato

ObjectWebSocketMessage

WebSocketMessageWebSocketUn tipo di messaggio in un protocollo che incapsulaWebSocketÈ possibile utilizzare il formato dei dati e i metodi di elaborazione dei diversi messaggi nel protocollo di trasmissioneWebSocketIl client e il server comunicano.

Il costruttore della classe WebSocketMessagesupporta un parametro del tipo di messaggio specificato type, che ha tre valori facoltativi:

  • ws.TEXT: Rappresenta un messaggio di tipo testo, il contenuto è una stringa.
  • ws.BINARY: Rappresenta un messaggio di tipo binario, il contenuto è costituito da dati binari.

Inoltre, è possibile anche WebSocketMessage.maskedspecificare se è necessario applicare una maschera modificando l'attributo e WebSocketMessage.compressse è necessaria la compressione utilizzando l'attributo.

Il codice seguente è un esempio di server WebSocket. Quando un client si connette, il server restituirà al client il messaggio ricevuto:

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();

In questo programma, il modulo di supporto websocket e il file built-inhttpmodulo e quindi creatohttpoggetto servizio e specificare il percorso della richiesta da elaborare, chiamandows.upgradeLa funzione aggiorna la richiesta del percorso corrispondente a una connessione websocket. Dopo aver creato una connessione websocket, il server creerà automaticamente un filews.SocketObject e fornisce onopen, onmessage, onclose e altre API da gestire quando un client si connette, riceve un messaggio e chiude gli eventi. Quando si riceve un messaggio, il server determinerà il tipo del messaggio: se è di tipo testuale, restituirà il messaggio ricevuto. Quanto sopra è un semplice flusso di elaborazione del server websocket, che può essere modificato in base alle effettive esigenze.

rapporto ereditario

Costruttore

WebSocketMessage

Costruttore di oggetti messaggio per la gestione del pacchetto

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

Parametri di chiamata:

  • type: numero intero, tipo di messaggio websocket, il valore predefinito è websocket.BINARY
  • masked: Booleano, maschera messaggio websocket, il valore predefinito è true
  • compress: Booleano, indica se il messaggio è compresso, il valore predefinito è false
  • maxSize: Numero intero, dimensione massima del pacchetto in MB, il valore predefinito è 67108864 (64M)

costante

TEXT

Specificare il tipo di messaggio 1, che rappresenta un tipo di testo

1
const WebSocketMessage.TEXT = 1;

BINARY

Specificare il tipo di messaggio 2, che rappresenta un tipo binario

1
const WebSocketMessage.BINARY = 2;

proprietà dei membri

masked

Booleano, interroga e leggi il flag della maschera websocket, il valore predefinito è vero

1
Boolean WebSocketMessage.masked;

compress

Booleano, interroga e legge lo stato di compressione del websocket, il valore predefinito è false

1
Boolean WebSocketMessage.compress;

maxSize

Intero, interroga e imposta la dimensione massima del pacchetto in byte, il valore predefinito è 67108864 (64M)

1
Integer WebSocketMessage.maxSize;

value

Stringa, il contenuto di base del messaggio

1
String WebSocketMessage.value;

params

NArray, i parametri di base del messaggio

1
readonly NArray WebSocketMessage.params;

type

Numero intero, tipo di messaggio

1
Integer WebSocketMessage.type;

data

Valore, interroga i dati del messaggio. Questo attributo restituirà dati diversi a seconda del tipo di contenuto. Quando è testo, verrà restituito il testo.jsontornare quandojson, altrimenti restituisce binario

1
readonly Value WebSocketMessage.data;

body

SeekableStream, un oggetto flusso contenente la parte dati del messaggio

1
SeekableStream WebSocketMessage.body;

length

Long, la lunghezza della parte dei dati del messaggio

1
readonly Long WebSocketMessage.length;

stream

Stream, l'oggetto flusso quando si interroga il messaggio readFrom

1
readonly Stream WebSocketMessage.stream;

lastError

Stringa, interroga e imposta l'ultimo errore di elaborazione del messaggio

1
String WebSocketMessage.lastError;

funzione membro

read

Legge i dati della dimensione specificata dal flusso. Questo metodo è un alias del metodo corrispondente del corpo.

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

Parametri di chiamata:

  • bytes: Numero intero, specifica la quantità di dati da leggere. L'impostazione predefinita prevede la lettura di blocchi di dati di dimensione casuale. La dimensione dei dati letti dipende dal dispositivo.

Risultati restituiti:

  • Buffer, restituisce i dati letti dallo stream. Se non ci sono dati da leggere o la connessione viene interrotta, viene restituito null.

readAll

Legge tutti i dati rimanenti dallo stream. Questo metodo è un alias del metodo corrispondente del corpo.

1
Buffer WebSocketMessage.readAll() async;

Risultati restituiti:

  • Buffer, restituisce i dati letti dallo stream. Se non ci sono dati da leggere o la connessione viene interrotta, viene restituito null.

write

Scrivi i dati forniti. Questo metodo è un alias del metodo corrispondente nel corpo.

1
WebSocketMessage.write(Buffer data) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da scrivere

json

Scrive i dati specificati nella codifica JSON

1
Value WebSocketMessage.json(Value data);

Parametri di chiamata:

  • data: Valore, dati i dati da scrivere

Risultati restituiti:

  • Value, questo metodo non restituisce dati

Analizza i dati nel messaggio come codifica JSON

1
Value WebSocketMessage.json();

Risultati restituiti:

  • Value, restituisce il risultato analizzato

pack

dimsgpackLa codifica scrive i dati forniti

1
Value WebSocketMessage.pack(Value data);

Parametri di chiamata:

  • data: Valore, dati i dati da scrivere

Risultati restituiti:

  • Value, questo metodo non restituisce dati

dimsgpackCodifica e analisi dei dati nel messaggio

1
Value WebSocketMessage.pack();

Risultati restituiti:

  • Value, restituisce il risultato analizzato

end

Imposta la fine dell'elaborazione del messaggio corrente,ChainIl processore non continua con le transazioni successive

1
WebSocketMessage.end();

isEnded

Interroga se il messaggio corrente è terminato

1
Boolean WebSocketMessage.isEnded();

Risultati restituiti:

  • Boolean, restituisce vero al termine

clear

Cancella il contenuto del messaggio

1
WebSocketMessage.clear();

sendTo

Invia un messaggio formattato all'oggetto flusso specificato

1
WebSocketMessage.sendTo(Stream stm) async;

Parametri di chiamata:

  • stm:Stream, specifica l'oggetto flusso che riceve il messaggio formattato

readFrom

Legge il messaggio formattato dall'oggetto flusso cache specificato e analizza l'oggetto popolato

1
WebSocketMessage.readFrom(Stream stm) async;

Parametri di chiamata:

  • stm:Stream, specifica l'oggetto flusso per la lettura dei messaggi formattati

toString

Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.

1
String WebSocketMessage.toString();

Risultati restituiti:

  • String, restituisce la rappresentazione di stringa dell'oggetto

toJSON

Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.

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

Parametri di chiamata:

  • key: Stringa, non utilizzata

Risultati restituiti:

  • Value, restituisce un valore contenente JSON serializzabile