Oggetto WebSocketMessage
WebSocketMessage
SÌWebSocketUn tipo di messaggio nel protocollo che incapsulaWebSocketÈ possibile utilizzare il formato dei dati e il metodo di elaborazione di vari messaggi nel protocollo di trasmissioneWebSocketComunicazione tra client e server.
Il costruttore della classe WebSocketMessage
supporta il 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 e il contenuto è costituito da dati binari.
Inoltre, puoi anche specificare se applicare una maschera modificando WebSocketMessage.masked
l'attributo e WebSocketMessage.compress
specificare se comprimere tramite l'attributo.
Il codice seguente è un esempio di un server WebSocket.Quando un client si connette, il server invia 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 built-inhttpmodulo, e quindi creato il filehttpOggetto servizio e specifica il percorso della richiesta da elaborare, chiamaws.upgradeLa funzione aggiorna la richiesta corrispondente al percorso di una connessione websocket. Dopo aver creato una connessione websocket, il server crea automaticamente un filews.Socketoggetto e fornisce onopen, onmessage, onclose e altre API da gestire quando un client si connette, riceve un messaggio e chiude l'evento. Quando riceve un messaggio, il server giudicherà il tipo del messaggio e, se si tratta di un tipo di testo, 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
Il pacchetto gestisce il costruttore dell'oggetto messaggio
1
2
3
4new WebSocketMessage(Integer type = ws.BINARY,
Boolean masked = true,
Boolean compress = false,
Integer maxSize = 67108864);
Parametri di chiamata:
- type: Integer, tipo di messaggio websocket, il valore predefinito è websocket.BINARY
- masked: booleano, maschera messaggio websocket, il valore predefinito è true
- compress: booleano, se contrassegnare la compressione del messaggio, il valore predefinito è false
- maxSize: Numero intero, la 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;
attributo membro
masked
Boolean, interroga e leggi flag maschera websocket, il valore predefinito è true
1Boolean WebSocketMessage.masked;
compress
Boolean, interroga e leggi lo stato di compressione del websocket, l'impostazione predefinita è false
1Boolean WebSocketMessage.compress;
maxSize
Numero intero, interroga e imposta la dimensione massima del pacchetto in byte, il valore predefinito è 67108864 (64 M)
1Integer WebSocketMessage.maxSize;
value
String, 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
Value, i dati del messaggio di query, questo attributo restituirà dati diversi in base al tipo di contenuto, quando è testo, restituirà il testo, che èjsontorna quandojson, altrimenti restituisce binario
1readonly Value WebSocketMessage.data;
body
SeekableStream, un oggetto stream contenente la parte dei dati del messaggio
1SeekableStream WebSocketMessage.body;
length
Long, la lunghezza della parte dati del messaggio
1readonly Long WebSocketMessage.length;
stream
Stream, l'oggetto flusso quando si esegue una query sul messaggio readFrom
1readonly Stream WebSocketMessage.stream;
lastError
Stringa, interroga e imposta l'elaborazione del messaggio dell'ultimo errore
1String WebSocketMessage.lastError;
funzione membro
read
Leggi i dati di dimensioni specificate dal flusso, questo metodo è un alias del metodo corrispondente di body
1Buffer WebSocketMessage.read(Integer bytes = -1) async;
Parametri di chiamata:
- bytes: Numero intero, specifica la quantità di dati da leggere, l'impostazione predefinita è leggere blocchi di dati di dimensioni casuali, la dimensione dei dati letti dipende dal dispositivo
risultato di ritorno:
- Buffer, restituisce i dati letti dal flusso oppure null se non ci sono dati da leggere o la connessione è interrotta
readAll
Leggi tutti i dati rimanenti dal flusso, questo metodo è un alias del metodo corrispondente di body
1Buffer WebSocketMessage.readAll() async;
risultato di ritorno:
- Buffer, restituisce i dati letti dal flusso oppure null se non ci sono dati da leggere o la connessione è interrotta
write
Scrivi i dati forniti, questo metodo è un alias del metodo corrispondente di body
1WebSocketMessage.write(Buffer data) async;
Parametri di chiamata:
- data:Buffer, dati i dati da scrivere
json
Scrivi i dati forniti nella codifica JSON
1Value WebSocketMessage.json(Value data);
Parametri di chiamata:
- data: Valore, dati i dati da scrivere
risultato di ritorno:
- Value, questo metodo non restituirà dati
Analizza i dati nel messaggio nella codifica JSON
1Value WebSocketMessage.json();
risultato di ritorno:
- Value, restituisce il risultato analizzato
pack
dimsgpackEncode scrive i dati dati
1Value WebSocketMessage.pack(Value data);
Parametri di chiamata:
- data: Valore, dati i dati da scrivere
risultato di ritorno:
- Value, questo metodo non restituirà dati
dimsgpackCodifica i dati nel messaggio analizzato
1Value WebSocketMessage.pack();
risultato di ritorno:
- Value, restituisce il risultato analizzato
end
Imposta la fine dell'elaborazione del messaggio corrente,ChainIl processore non continua le transazioni successive
1WebSocketMessage.end();
isEnded
Interroga se il messaggio corrente è terminato
1Boolean WebSocketMessage.isEnded();
risultato di ritorno:
- Boolean, restituisce true al termine
clear
Cancella il contenuto del messaggio
1WebSocketMessage.clear();
sendTo
inviare 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 un messaggio formattato dall'oggetto flusso memorizzato nella cache specificato e analizza l'oggetto popolato
1WebSocketMessage.readFrom(Stream stm) async;
Parametri di chiamata:
- stm:Stream, specifica l'oggetto stream per la lettura dei messaggi formattati
toString
Restituisce la rappresentazione in stringa dell'oggetto, generalmente restituisce "[Native Object]", l'oggetto può essere reimplementato secondo le proprie caratteristiche
1String WebSocketMessage.toString();
risultato di ritorno:
- String, restituisce una rappresentazione in forma di stringa dell'oggetto
toJSON
Restituisce la rappresentazione in formato JSON dell'oggetto, in genere restituisce una raccolta di proprietà leggibili definite dall'oggetto
1Value WebSocketMessage.toJSON(String key = "");
Parametri di chiamata:
- key: stringa, non utilizzata
risultato di ritorno:
- Value, che restituisce un valore serializzabile in JSON