Ahora escribiremos un servidor WebSocket simple en node.js. Cuando se conecte a este servidor, recibir谩 un mensaje de bienvenida como respuesta. Y tambi茅n estar谩n disponibles para su ejecuci贸n un par de comandos simples.
Para hacer esto, necesita instalar Node.js con el administrador de paquetes npm, viene con
Configuraci贸n del proyecto
Primero, necesitamos crear un directorio para el proyecto futuro
mkdir websocket-server-node
Ir al directorio
cd websocket-server-node
A continuaci贸n, debe inicializar un nuevo proyecto a trav茅s de npm
npm init
El instalador le pedir谩 que responda algunas preguntas, puede omitirlas
, WS UTF-8
npm install ws
npm install --save-optional utf-8-validate
websocket-
. server.js, . , GitHub.
server.js:
websocket
const WebSocket = require('ws');
, , WebSocket, WebSocket-.
const wsServer = new WebSocket.Server({port: 9000});
HTTP-, WebSocket- . HTTP- , WebSocket- , .
, onConnect.
wsServer.on('connection', onConnect);
onConnection ws-, .
onConnect , wsClient. wsClient: message close.
message - .
close - .
onConnect, .
onConnect:
function onConnect(wsClient) {
console.log(' ');
//
wsClient.send('');
wsClient.on('message', function(message) {
/* */
}
wsClient.on('close', function() {
//
console.log(' ');
}
}
close .
. , JSON-. JSON , .
JSON :
{
action: 'ECHO' | 'PING',
data?: string //
}
, :
echo-, data
ping, pong
, " "
:
try {
// , JSON-
const jsonMessage = JSON.parse(message);
switch (jsonMessage) {
case 'ECHO':
wsClient.send(jsonMessage.data);
break;
case: 'PING':
setTimeout(function() {
wsClient.send('PONG');
}, 2000);
break;
default:
console.log(' ');
break;
}
} catch (error) {
console.log('', error);
}
, PING , 2 .
server.js , , .
console.log(' 9000 ');
:
node server.js
Windows Linux (Ctrl + C)
MacOs (Cmd + C)
,
Window:
ipconfig
Linux MacOS:
ifconfig
192.168.0.15, ws://192.168.0.15:9000.
, F12. DevTools, :
const myWs = new WebSocket('ws://localhost:9000');
//
myWs.onopen = function () {
console.log('');
};
//
myWs.onmessage = function (message) {
console.log('Message: %s', message.data);
};
// echo-
function wsSendEcho(value) {
myWs.send(JSON.stringify({action: 'ECHO', data: value.toString()}));
}
// ping
function wsSendPing() {
myWs.send(JSON.stringify({action: 'PING'}));
}
. wsSendPing:
wsSendPing()
2 , :
Mensaje: PONG
Llame a la funci贸n wsSendEcho, por ejemplo, con el contenido "隆Prueba!", Y la consola generar谩:
Mensaje: 隆Prueba!
隆Eso es todo! A qui茅n le gust贸, poner Me gusta, suscribirse. 隆Bien por todos!
Enlace al c贸digo completo de GitHub