WebSockets desde cero | 1.2 - Creación de un servidor de WS
Winkler Alfredo Palacios Méjico @winkleralfredopalaciosmejico
Creación de un servidor de WS en Markdown
Para crear un servidor de WebSocket en Node.js, puedes seguir los siguientes pasos:
- Inicializar un proyecto de Node.js con
npm init -y
. - Instalar el paquete de
websocket
connpm install websocket
. - Crear un archivo
.js
y agregar el siguiente código:
1const WebSocketServer = require('websocket').server; 2const http = require('http'); 3 4const server = http.createServer((request, response) => { 5 console.log((new Date()) + ' Received request for ' + request.url); 6 response.writeHead(404); 7 response.end(); 8}); 9server.listen(8080, () => { 10 console.log((new Date()) + ' Server is listening on port 8080'); 11}); 12 13wsServer = new WebSocketServer({ 14 httpServer: server, 15 autoAcceptConnections: false 16}); 17 18const originIsAllowed = (origin) => { 19 return true; 20} 21 22wsServer.on('request', (request) => { 23 if (!originIsAllowed(request.origin)) { 24 request.reject(); 25 console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.'); 26 return; 27 } 28 29 const connection = request.accept(null, request.origin); 30 console.log((new Date()) + ' Connection accepted.'); 31 connection.on('message', (message) => { 32 if (message.type === 'utf8') { 33 console.log('Received Message: ' + message.utf8Data); 34 connection.sendUTF(message.utf8Data); 35 } 36 else if (message.type === 'binary') { 37 console.log('Received Binary Message of ' + message.binaryData.length + ' bytes'); 38 connection.sendBytes(message.binaryData); 39 } 40 }); 41 connection.on('close', (reasonCode, description) => { 42 console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.'); 43 }); 44}); 45 46
- Ejecutar el servidor con
npm start
. - Instalar el paquete wscat con
npm install -g wscat
. - Iniciar una conexión con el servidor escribiendo en la consola -
wscat -c ws://localhost:8080
. Con estos pasos, deberías tener un servidor deWebSocket
funcionando enNode.js
y una conexión establecida con el paquetewscat
.
Escribe una respuesta