Modulo modulo base

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:

1
var ws = require('ws');

Crea un server:

1 2 3 4 5 6 7 8 9
var 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 4
var 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

1
WebSocketMessage ws.Message;

Socket

WebSocketoggetto, vediWebSocket

1
WebSocket ws.Socket;

funzione statica

upgrade

Crea un gestore di protocollo websocket, dahttpRicevi la richiesta di aggiornamento e stringi la mano, generaWebSocketoggetto

1
static 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:


Crea un gestore di protocollo websocket, dahttpRicevi la richiesta di aggiornamento e stringi la mano, generaWebSocketoggetto

1 2
static 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:

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

1
const ws.CONTINUE = 0;

TEXT

Specifica il tipo di messaggio websocket 1, che rappresenta una cornice di testo

1
const ws.TEXT = 1;

BINARY

Specifica il tipo di messaggio websocket 2, che rappresenta un frame binario

1
const ws.BINARY = 2;

CLOSE

Specifica il tipo di messaggio websocket 8, la connessione è chiusa

1
const ws.CLOSE = 8;

PING

Specifica il tipo di messaggio websocket 9, che rappresenta un frame ping

1
const ws.PING = 9;

PONG

Specifica il tipo di messaggio websocket 10, che rappresenta un frame pong

1
const ws.PONG = 10;

CONNECTING

specificareWebSocketstate, indicando che si sta connettendo

1
const ws.CONNECTING = 0;

OPEN

specificareWebSocketstato, che indica lo stato aperto

1
const ws.OPEN = 1;

CLOSING

specificareWebSocketStato, che indica che il messaggio CLOSE è stato inviato ed è in attesa di essere chiuso

1
const ws.CLOSING = 2;

CLOSED

specificareWebSocketstato, indicando che è chiuso

1
const ws.CLOSED = 3;