Oggetto oggetto incorporato

Oggetto WebSocketMessage

WebSocketMessageWebSocketUn 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 WebSocketMessagesupporta 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.maskedl'attributo e WebSocketMessage.compressspecificare 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 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 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 4
new 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

1
const WebSocketMessage.TEXT = 1;

BINARY

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

1
const WebSocketMessage.BINARY = 2;

attributo membro

masked

Boolean, interroga e leggi flag maschera websocket, il valore predefinito è true

1
Boolean WebSocketMessage.masked;

compress

Boolean, interroga e leggi lo stato di compressione del websocket, l'impostazione predefinita è false

1
Boolean WebSocketMessage.compress;

maxSize

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

1
Integer WebSocketMessage.maxSize;

value

String, 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

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

1
readonly Value WebSocketMessage.data;

body

SeekableStream, un oggetto stream contenente la parte dei dati del messaggio

1
SeekableStream WebSocketMessage.body;

length

Long, la lunghezza della parte dati del messaggio

1
readonly Long WebSocketMessage.length;

stream

Stream, l'oggetto flusso quando si esegue una query sul messaggio readFrom

1
readonly Stream WebSocketMessage.stream;

lastError

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

1
String WebSocketMessage.lastError;

funzione membro

read

Leggi i dati di dimensioni specificate dal flusso, questo metodo è un alias del metodo corrispondente di body

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

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

1
WebSocketMessage.write(Buffer data) async;

Parametri di chiamata:

  • data:Buffer, dati i dati da scrivere

json

Scrivi i dati forniti nella codifica JSON

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

1
Value WebSocketMessage.json();

risultato di ritorno:

  • Value, restituisce il risultato analizzato

pack

dimsgpackEncode scrive i dati dati

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

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

1
WebSocketMessage.end();

isEnded

Interroga se il messaggio corrente è terminato

1
Boolean WebSocketMessage.isEnded();

risultato di ritorno:

  • Boolean, restituisce true al termine

clear

Cancella il contenuto del messaggio

1
WebSocketMessage.clear();

sendTo

inviare 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 un messaggio formattato dall'oggetto flusso memorizzato nella cache specificato e analizza l'oggetto popolato

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

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

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

Parametri di chiamata:

  • key: stringa, non utilizzata

risultato di ritorno:

  • Value, che restituisce un valore serializzabile in JSON