ObjectWebSocket
WebSocket è un protocollo di comunicazione full-duplex basato sul protocollo TCP. Stabilisce una connessione ininterrotta tra il browser e il server, può realizzare la trasmissione dati bidirezionale in tempo reale e può supportare la trasmissione dati in qualsiasi formato. In fibjs, il modulo di supporto WebSocket fornisce l'interfaccia API corrispondente, che può realizzare lo sviluppo del server e del client WebSocket.
Il modulo di supporto WebSocket è solo un'implementazione del protocollo WebSocket e deve funzionare sopra il protocollo HTTP. Lato server la richiesta HTTP può essere convertita in una connessione WebSocket tramite la funzione di upgrade, mentre lato client è necessario specificare l'indirizzo del server a cui connettersi tramite l'URL del protocollo WebSocket.
Esempio di avvio di un server WebSocket:
1
2
3
4
5
6
7
8
9
10
11var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade(conn => {
conn.onmessage = e => {
conn.send('fibjs:' + e.data);
};
})
});
svr.start();
Esempio di creazione di una connessione con il server sopra indicato nel client:
1
2
3
4
5
6
7
8
9
10
11
12var ws = require("ws");
var conn = new ws.Socket("ws://127.0.0.1/ws");
// emit open event
conn.onopen = () => {
console.log("websocket connected");
conn.send("hi");
};
// emit close event
conn.onmessage = evt => {
console.log("websocket receive: " + evt.data);
};
rapporto ereditario
Costruttore
WebSocket
Costruttore WebSocket
1
2
3new WebSocket(String url,
String protocol = "",
String origin = "");
Parametri di chiamata:
- url: String, specifica il server connesso
- protocol: Stringa, specifica il protocollo di handshake, il valore predefinito è ""
- origin: Stringa, specifica l'origine della simulazione durante l'handshake, il valore predefinito è ""
Costruttore WebSocket
1
2new WebSocket(String url,
Object opts);
Parametri di chiamata:
- url: String, specifica il server connesso
- opts: Oggetto, opzione di connessione, l'impostazione predefinita è {}
opts contiene opzioni aggiuntive per la richiesta, supportate come segue:
1
2
3
4
5
6
7
8{
"protocol": "", // specify the sub-protocol, default is ""
"origin": "", // specify the origin, default is ""
"perMessageDeflate": false, // specify whether to enable permessage-deflate, default is false
"maxPayload": 67108864, // specify the max payload size, default is 64MB
"httpClient": hc, // specify the http client, default is null, use the global http client
"headers": // specify the http headers, default is {}
}
proprietà statiche
defaultMaxListeners
Intero, il numero massimo globale predefinito di ascoltatori
1static Integer WebSocket.defaultMaxListeners;
proprietà dei membri
url
String, interroga il server a cui è connesso l'oggetto corrente
1readonly String WebSocket.url;
protocol
Stringa, interroga il protocollo della connessione dell'oggetto corrente
1readonly String WebSocket.protocol;
origin
String, interroga l'origine della connessione dell'oggetto corrente
1readonly String WebSocket.origin;
readyState
Intero, interroga lo stato della connessione dell'oggetto corrente, vediws
1readonly Integer WebSocket.readyState;
onopen
Funzione, interroga e associa eventi di successo della connessione, equivalente a on("open", func);
1Function WebSocket.onopen;
onmessage
Funzione, interroga e associa eventi che ricevono messaggi dall'altra parte, equivalente a on("message", func);
1Function WebSocket.onmessage;
onclose
Funzione, interroga e lega gli eventi di chiusura della connessione, equivalente a on("close", func);
1Function WebSocket.onclose;
onerror
Funzione, interroga e associa eventi quando si verificano errori, equivalente a on("error", func);
1Function WebSocket.onerror;
funzione membro
close
Chiudi la connessione corrente. Questa operazione invierà un pacchetto CLOSE all'altra parte e attenderà la risposta dell'altra parte.
1
2WebSocket.close(Integer code = 1000,
String reason = "");
Parametri di chiamata:
- code: Numero intero, specifica il codice di arresto, il valore consentito è 3000-4999 o 1000, il valore predefinito è 1000
- reason: Stringa, specifica il motivo dello spegnimento, il valore predefinito è ""
send
Invia un messaggio all'altra parte
1WebSocket.send(String data);
Parametri di chiamata:
- data: String, specifica il testo da inviare
Invia un pezzo di dati binari all'altra parte
1WebSocket.send(Buffer data);
Parametri di chiamata:
- data:Buffer, specificare i dati binari inviati
ref
Mantieni la chiusura del processo fibjs e impedisci la chiusura del processo fibjs durante l'associazione degli oggetti
1WebSocket WebSocket.ref();
Risultati restituiti:
- WebSocket, restituisce l'oggetto corrente
unref
Consenti l'uscita del processo fibjs. Consenti l'uscita del processo fibjs durante l'associazione degli oggetti.
1WebSocket WebSocket.unref();
Risultati restituiti:
- WebSocket, restituisce l'oggetto corrente
on
Associa un gestore eventi all'oggetto
1
2Object WebSocket.on(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object WebSocket.on(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
addListener
Associa un gestore eventi all'oggetto
1
2Object WebSocket.addListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object WebSocket.addListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object WebSocket.prependListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object WebSocket.prependListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
once
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1
2Object WebSocket.once(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1Object WebSocket.once(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependOnceListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object WebSocket.prependOnceListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object WebSocket.prependOnceListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
off
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object WebSocket.off(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object WebSocket.off(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object WebSocket.off(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeListener
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object WebSocket.removeListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object WebSocket.removeListener(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object WebSocket.removeListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeAllListeners
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object WebSocket.removeAllListeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object WebSocket.removeAllListeners(Array evs = []);
Parametri di chiamata:
- evs: Array, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
setMaxListeners
Il limite predefinito sul numero di ascoltatori, solo per compatibilità
1WebSocket.setMaxListeners(Integer n);
Parametri di chiamata:
- n: Numero intero, specifica il numero di eventi
getMaxListeners
Ottiene il numero limite predefinito di ascoltatori, solo per compatibilità
1Integer WebSocket.getMaxListeners();
Risultati restituiti:
- Integer, restituisce la quantità limite predefinita
listeners
Interroga l'array del listener per l'evento specificato dell'oggetto
1Array WebSocket.listeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Array, restituisce l'array del listener per l'evento specificato
listenerCount
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1Integer WebSocket.listenerCount(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1
2Integer WebSocket.listenerCount(Value o,
String ev);
Parametri di chiamata:
- o: Valore, specifica l'oggetto della query
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
eventNames
Interroga il nome dell'evento del listener
1Array WebSocket.eventNames();
Risultati restituiti:
- Array, restituisce una matrice di nomi di eventi
emit
Attiva attivamente un evento
1
2Boolean WebSocket.emit(String ev,
...args);
Parametri di chiamata:
- ev: stringa, nome dell'evento
- args: ..., i parametri dell'evento verranno passati alla funzione di elaborazione degli eventi
Risultati restituiti:
- Boolean, restituisce lo stato di attivazione dell'evento, restituisce true se è presente un evento di risposta, altrimenti restituisce false
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 WebSocket.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 WebSocket.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile