Mòdul mòdul bàsic

mòduls

mòdul de suport de websocket

WebSocketEl protocol és un protocol de comunicació full-duplex basat en el protocol TCP que estableix una connexió ininterrompuda entre el navegador i el servidor, pot realitzar transmissió de dades bidireccional en temps real i pot suportar la transmissió de dades en qualsevol format. En fibjs,WebSocketEl mòdul de suport proporciona les interfícies API corresponents per implementarWebSocketDesenvolupament del costat del servidor i del costat del client.

Instruccions:

1
var ws = require('ws');

Crea un servidor:

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();

Al codi anterior, el fibjs integrat es carrega primer mitjançant la funció require.WebSocketMòduls de suport i després utilitzarhttp.ServerLa classe crea una instància del servidor HTTP, especifica el número de port d'escolta i el camí de la sol·licitud HTTP i, a continuació, utilitza la funció d'actualització sota el camí especificat per actualitzar la sol·licitud aWebSocketconnexió, el servidor crea automàticament aWebSocketL'objecte proporciona onopen, onmessage, onerror, onclose i altres esdeveniments, i pot enviar dades al client mitjançant la funció d'enviament.

utilitzarWebSocketClient:

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);

Pot ser creat perSocketexemple i especifiqueu aWebSocketURL per completar la connexió del client.SocketLa classe proporciona onmessage, onerror, onclose i altres funcions de devolució de trucada i funcions d'enviament, que poden enviar dades al servidor i rebre dades enviades pel servidor.

cal ser conscient,WebSocketEls mòduls de suport són senzillsWebSocketUna implementació del protocol que ha de funcionar a la part superior del protocol HTTP. Al costat del servidor, la funció d'actualització es pot utilitzar per convertir les sol·licituds HTTP enWebSocketconnexió, i pel costat del client, cal passarWebSocketURL del protocol per especificar l'adreça del servidor que s'ha de connectar.

objecte

Message

Creeu un objecte de missatge websocket, vegeuWebSocketMessage

1
WebSocketMessage ws.Message;

Socket

WebSocketobjecte, veureWebSocket

1
WebSocket ws.Socket;

funció estàtica

upgrade

Creeu un gestor de protocols websocket des dehttpRebre la sol·licitud d'actualització i encaixada de mans, generarWebSocketobjecte

1
static Handler ws.upgrade(Function accept);

Paràmetres de trucada:

  • accept: Funció, funció de processament d'èxit de connexió, la devolució de trucada passarà dos paràmetres, el primer paràmetre és el rebutWebSocketObjecte, el segon paràmetre és l'encaixada de mansHttpRequestobjecte

Resultats de retorn:


Creeu un gestor de protocols websocket des dehttpRebre la sol·licitud d'actualització i encaixada de mans, generarWebSocketobjecte

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

Paràmetres de trucada:

  • opts: Objecte, opció de connexió, per defecte és {}
  • accept: Funció, funció de processament d'èxit de connexió, la devolució de trucada passarà dos paràmetres, el primer paràmetre és el rebutWebSocketObjecte, el segon paràmetre és l'encaixada de mansHttpRequestobjecte

Resultats de retorn:

opts conté opcions addicionals per a la sol·licitud, compatibles de la següent manera:

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 }

constant

CONTINUE

Especifiqueu el tipus de missatge websocket 0, que representa un marc de continuació

1
const ws.CONTINUE = 0;

TEXT

Especifiqueu el tipus de missatge de websocket 1, que representa un marc de text

1
const ws.TEXT = 1;

BINARY

Especifiqueu el tipus de missatge websocket 2, que representa un marc binari

1
const ws.BINARY = 2;

CLOSE

Especifiqueu el tipus de missatge websocket 8, la connexió està tancada

1
const ws.CLOSE = 8;

PING

Especifiqueu el tipus de missatge websocket 9, que representa un marc de ping

1
const ws.PING = 9;

PONG

Especifiqueu el tipus de missatge de websocket 10, que representa un marc de pong

1
const ws.PONG = 10;

CONNECTING

EspecificarWebSocketestat, que indica que s'està connectant

1
const ws.CONNECTING = 0;

OPEN

EspecificarWebSocketestat, que indica l'estat obert

1
const ws.OPEN = 1;

CLOSING

EspecificarWebSocketestat, indicant que s'ha enviat el missatge TANCAR i que està esperant a ser tancat.

1
const ws.CLOSING = 2;

CLOSED

EspecificarWebSocketestat, indicant que ha estat tancat

1
const ws.CLOSED = 3;