ObjectWebSocketMessage
WebSocketMessage
SÌWebSocketUn 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 WebSocketMessage
supporta 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.masked
specificare se è necessario applicare una maschera modificando l'attributo e WebSocketMessage.compress
se è 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
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();
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
4new 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
1const WebSocketMessage.TEXT = 1;
BINARY
Specificare il tipo di messaggio 2, che rappresenta un tipo binario
1const WebSocketMessage.BINARY = 2;
proprietà dei membri
masked
Booleano, interroga e leggi il flag della maschera websocket, il valore predefinito è vero
1Boolean WebSocketMessage.masked;
compress
Booleano, interroga e legge lo stato di compressione del websocket, il valore predefinito è false
1Boolean WebSocketMessage.compress;
maxSize
Intero, interroga e imposta la dimensione massima del pacchetto in byte, il valore predefinito è 67108864 (64M)
1Integer WebSocketMessage.maxSize;
value
Stringa, il contenuto di base del messaggio
1String WebSocketMessage.value;
params
NArray, i parametri di base del messaggio
1readonly NArray WebSocketMessage.params;
type
Numero intero, tipo di messaggio
1Integer 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
1readonly Value WebSocketMessage.data;
body
SeekableStream, un oggetto flusso contenente la parte dati del messaggio
1SeekableStream WebSocketMessage.body;
length
Long, la lunghezza della parte dei dati del messaggio
1readonly Long WebSocketMessage.length;
stream
Stream, l'oggetto flusso quando si interroga il messaggio readFrom
1readonly Stream WebSocketMessage.stream;
lastError
Stringa, interroga e imposta l'ultimo errore di elaborazione del messaggio
1String WebSocketMessage.lastError;
funzione membro
read
Legge i dati della dimensione specificata dal flusso. Questo metodo è un alias del metodo corrispondente del corpo.
1Buffer 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.
1Buffer 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.
1WebSocketMessage.write(Buffer data) async;
Parametri di chiamata:
- data:Buffer, dati i dati da scrivere
json
Scrive i dati specificati nella codifica JSON
1Value 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
1Value WebSocketMessage.json();
Risultati restituiti:
- Value, restituisce il risultato analizzato
pack
dimsgpackLa codifica scrive i dati forniti
1Value 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
1Value 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
1WebSocketMessage.end();
isEnded
Interroga se il messaggio corrente è terminato
1Boolean WebSocketMessage.isEnded();
Risultati restituiti:
- Boolean, restituisce vero al termine
clear
Cancella il contenuto del messaggio
1WebSocketMessage.clear();
sendTo
Invia un messaggio formattato all'oggetto flusso specificato
1WebSocketMessage.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
1WebSocketMessage.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.
1String 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.
1Value WebSocketMessage.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile