Modulo modulo base

modulews

modulo di supporto websocket

WebSocketIl protocollo è 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. Nelle fibj,WebSocketIl modulo di supporto fornisce le interfacce API corrispondenti da implementareWebSocketSviluppo 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 sopra, il fibjs integrato viene prima caricato tramite la funzione require.WebSocketSupportare i moduli, quindi utilizzarlihttp.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 inviare dati al server e ricevere dati inviati dal server.

bisogna essere consapevoli è,WebSocketI moduli di supporto sono sempliciWebSocketUn'implementazione del protocollo che deve funzionare sopra il protocollo HTTP. Lato server è possibile utilizzare la funzione di aggiornamento per convertire le richieste HTTP in fileWebSocketconnessione e, dal lato client, è necessario passareWebSocketURL del 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 richiesta di aggiornamento e stretta di mano, generaWebSocketoggetto

1
static Handler ws.upgrade(Function accept);

Parametri di chiamata:

  • accept: Funzione, funzione di elaborazione della connessione riuscita, la richiamata passerà due parametri, il primo parametro è quello ricevutoWebSocketOggetto, il secondo parametro è la stretta di manoHttpRequestoggetto

Risultati restituiti:


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

1 2
static Handler ws.upgrade(Object opts, Function accept);

Parametri di chiamata:

  • opts: Oggetto, opzione di connessione, l'impostazione predefinita è {}
  • accept: Funzione, funzione di elaborazione della connessione riuscita, la richiamata passerà due parametri, il primo parametro è quello ricevutoWebSocketOggetto, il secondo parametro è la stretta di manoHttpRequestoggetto

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

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

Specificare il tipo di messaggio websocket 0, che rappresenta un frame di continuazione

1
const ws.CONTINUE = 0;

TEXT

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

1
const ws.TEXT = 1;

BINARY

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

1
const ws.BINARY = 2;

CLOSE

Specificare il tipo di messaggio websocket 8, la connessione viene chiusa

1
const ws.CLOSE = 8;

PING

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

1
const ws.PING = 9;

PONG

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

1
const ws.PONG = 10;

CONNECTING

SpecificareWebSocketstato, indicando che è in corso la connessione

1
const ws.CONNECTING = 0;

OPEN

SpecificareWebSocketstato, che indica lo stato aperto

1
const ws.OPEN = 1;

CLOSING

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

1
const ws.CLOSING = 2;

CLOSED

SpecificareWebSocketstato, indicando che è stato chiuso

1
const ws.CLOSED = 3;