modulo w
modulo di supporto websocket
WebSocketIl protocollo è un protocollo di comunicazione full-duplex basato sul protocollo TCP, che stabilisce una connessione ininterrotta tra il browser e il server, può realizzare la trasmissione di dati bidirezionale in tempo reale e può supportare la trasmissione di dati in qualsiasi formato. In fibj,WebSocketIl modulo di supporto fornisce l'interfaccia API corrispondente, che può realizzareWebSocketSviluppo lato server e lato client.
Istruzioni:
1var ws = require('ws');
Crea un server:
1
2
3
4
5
6
7
8
9var ws = require('ws');
var http = require('http');
var svr = new http.Server(80, {
'/ws': ws.upgrade((conn, req) => {
conn.onmessage = e => console.log(e.data);
})
});
svr.start();
Nel codice precedente, il fibjs integrato viene prima caricato tramite la funzione requireWebSocketmodulo di supporto, quindi utilizzarehttp.ServerLa classe crea un'istanza del server HTTP, specifica il numero della porta di ascolto e il percorso della richiesta HTTP, quindi utilizza la funzione di aggiornamento nel percorso specificato per aggiornare la richiesta aWebSocketconnessione, il server crea automaticamente un fileWebSocketL'oggetto fornisce onopen, onmessage, onerror, onclose e altri eventi e può inviare dati al client tramite la funzione send.
utilizzoWebSocketcliente:
1
2
3
4var ws = require('ws');
var conn = new ws.Socket('ws://127.0.0.1/ws');
conn.onmessage = e => console.log(e.data);
può essere creato daSocketistanza e specificare aWebSocketURL per completare la connessione client.SocketLa classe fornisce onmessage, onerror, onclose e altre funzioni di callback e funzioni di invio, che possono realizzare l'invio di dati al server e la ricezione di dati inviati dal server.
di cui essere consapevoli è,WebSocketI moduli di supporto sono giustiWebSocketUn'implementazione del protocollo che deve funzionare al di sopra del protocollo HTTP. Sul lato server, la richiesta HTTP può essere convertita inWebSocketconnessione, mentre sul lato client, devi passareWebSocketURL protocollo per specificare l'indirizzo del server a cui connettersi.
oggetto
Message
Creare un oggetto messaggio websocket, vedereWebSocketMessage
1WebSocketMessage ws.Message;
Socket
WebSocketoggetto, vediWebSocket
1WebSocket ws.Socket;
funzione statica
upgrade
Crea un gestore di protocollo websocket, dahttpRicevi la richiesta di aggiornamento e stringi la mano, generaWebSocketoggetto
1static Handler ws.upgrade(Function accept);
Parametri di chiamata:
- accept: Funzione, la funzione di elaborazione del successo della connessione, la richiamata passerà due parametri, il primo parametro è il ricevutoWebSocketOggetto, il secondo parametro è la stretta di manoHttpRequestoggetto
risultato di ritorno:
- Handler, restituisce un gestore di protocollo che può essere utilizzato conHttpServer,Chain,RoutingIn attesa di attracco```
Crea un gestore di protocollo websocket, dahttpRicevi la richiesta di aggiornamento e stringi la mano, generaWebSocketoggetto
1
2static Handler ws.upgrade(Object opts,
Function accept);
Parametri di chiamata:
- opts: oggetto, opzioni di connessione, il valore predefinito è {}
- accept: Funzione, la funzione di elaborazione del successo della connessione, la richiamata passerà due parametri, il primo parametro è il ricevutoWebSocketOggetto, il secondo parametro è la stretta di manoHttpRequestoggetto
risultato di ritorno:
- Handler, restituisce un gestore di protocollo che può essere utilizzato conHttpServer,Chain,RoutingIn attesa dell'attracco
opts contiene opzioni aggiuntive per la richiesta, il contenuto supportato è il seguente:
1
2
3
4{
"perMessageDeflate": false, // specify whether to use permessage-deflate, default is true
"maxPayload": 67108864 // specify the maximum allowed message size, default is 64MB
}
costante
CONTINUE
Specifica il tipo di messaggio websocket 0, che rappresenta un frame di continuazione
1const ws.CONTINUE = 0;
TEXT
Specifica il tipo di messaggio websocket 1, che rappresenta una cornice di testo
1const ws.TEXT = 1;
BINARY
Specifica il tipo di messaggio websocket 2, che rappresenta un frame binario
1const ws.BINARY = 2;
CLOSE
Specifica il tipo di messaggio websocket 8, la connessione è chiusa
1const ws.CLOSE = 8;
PING
Specifica il tipo di messaggio websocket 9, che rappresenta un frame ping
1const ws.PING = 9;
PONG
Specifica il tipo di messaggio websocket 10, che rappresenta un frame pong
1const ws.PONG = 10;
CONNECTING
specificareWebSocketstate, indicando che si sta connettendo
1const ws.CONNECTING = 0;
OPEN
specificareWebSocketstato, che indica lo stato aperto
1const ws.OPEN = 1;
CLOSING
specificareWebSocketStato, che indica che il messaggio CLOSE è stato inviato ed è in attesa di essere chiuso
1const ws.CLOSING = 2;
CLOSED
specificareWebSocketstato, indicando che è chiuso
1const ws.CLOSED = 3;