JavaScript

Programa de ejemplo de WebSocket

Programa de ejemplo de WebSocket

El protocolo WebSocket permite que se produzca una comunicación bidireccional entre un cliente y un servidor. Este proceso es similar a la forma en que se realizan las llamadas en su teléfono: primero, establece una conexión y luego puede comenzar a comunicarse entre sí. El protocolo WebSocket se utiliza en casi todas partes, desde juegos de navegador multijugador hasta aplicaciones de chat.

Este artículo le muestra cómo crear un protocolo WebSocket y usarlo para comunicarse con múltiples usuarios.

Prerrequisitos

Antes de pasar al proceso de creación y uso de un protocolo WebSocket, primero debe instalar algunas cosas que son necesarias para este proceso. Lo primero que necesita instalar es Node.js, una plataforma del lado del servidor que convierte el lenguaje de programación JavaScript en código de máquina que le permite ejecutar JavaScript directamente en su computadora. Para instalar Node.js, los usuarios de Windows pueden simplemente ir al nodo oficial.js y haga clic en el botón verde LTS que se encuentra en el centro de la pantalla.

Para usuarios de Linux y macOS, haga clic en el Descargas sección en el subtítulo del sitio web.

Después de abrir el Descargas sección, verá los archivos de instalación para las tres plataformas principales. Seleccione un paquete que sea compatible con su sistema.

Ejecute el instalador que viene con los archivos descargados y Node.js se instalará en su computadora. Para comprobar si el programa se ha instalado, abra el terminal y emita el siguiente comando:

$ nodo -v

Después de instalar Node.js, ahora tiene acceso a varios módulos de JavaScript, lo que hará que su trabajo sea más eficiente a largo plazo. Abra el directorio en el que desea crear su arquitectura de cliente y servidor, luego abra la terminal dentro de ese directorio y ejecute el siguiente comando:

$ npm init -y

Este comando se usa para crear el paquete.json archivo que le permite configurar e instalar diferentes Node.paquetes js. Instale el paquete de protocolo WebSocket emitiendo el siguiente comando en la terminal:

$ npm install ws

Cree tres archivos, llamados índice.html, cliente.js y servidor.js. Como lo indican los nombres, estos archivos JavaScript son la arquitectura de cliente y servidor de nuestro protocolo WebSocket. Ahora, finalmente podemos comenzar a escribir el código de nuestras aplicaciones cliente y servidor.

Crear un servidor WebSocket

Para crear un servidor WebSocket, comenzaremos escribiendo el código para el servidor. Abre el servidor.js archivo que creó dentro de su editor de texto o IDE en la sección anterior e ingrese las siguientes líneas dentro del archivo.

const WebSocket = require ('ws');
const ws = nuevo WebSocket.Servidor (puerto: 8080);
consola.log ("Servidor iniciado");
ws.on ('conexión', (wss) =>
consola.log ("Un nuevo cliente conectado")
wss.send ('Bienvenido al servidor!');
wss.on ('mensaje', (mensaje) =>
consola.log ('Servidor recibido: $ mensaje');
wss.enviar ('Recibí su mensaje:' + mensaje);
);
);

Ahora, explicaremos con mayor detalle qué hace cada línea.

Explicación del código

Como se mencionó anteriormente, hay algunos módulos integrados disponibles en Node.js que facilitan mucho tu trabajo. Para importar estos módulos, usaremos el exigir palabra clave.

const WebSocket = require ('ws');
const ws = nuevo WebSocket.Servidor (puerto: 8080);
consola.log ("Servidor iniciado");

La primera línea se usa para importar el nodo.módulo js WebSocket. Usando este módulo, en la siguiente línea, creamos nuestro servidor WebSocket, que está escuchando en el puerto 8080. La consola.Iniciar sesión() La línea simplemente está ahí para informarnos que el servidor se ha iniciado. Verá que esto aparece dentro de su terminal cuando ejecute el siguiente comando en el terminal:

$ servidor de nodo

En la siguiente línea, estamos estableciendo una conexión entre el servidor y el cliente.

ws.on ('conexión', (wss) =>
consola.log ("Un nuevo cliente conectado")
);

Una vez establecida la conexión, el wss.La línea send () envía un mensaje al cliente. En este caso, el mensaje es "Bienvenido al servidor."

wss.send ('Bienvenido al servidor!');

Finalmente, el wss.on ('mensaje') es para que el servidor reciba el mensaje del cliente. Para confirmación, el servidor envía este mensaje al cliente en la última línea.

wss.on ('mensaje', (mensaje) =>
consola.log ('Servidor recibido: $ mensaje');
wss.enviar ('Recibí su mensaje:' + mensaje);
);

Creación de un cliente WebSocket

Para el lado del cliente, necesitamos tanto el índice.archivo html y el cliente.archivo js. Por supuesto, simplemente puede agregar el contenido del cliente.js archivo en su índice.html, pero prefiero mantenerlos separados. Veamos primero al cliente.código js. Abra el archivo e ingrese las siguientes líneas dentro del archivo:

const socket = new WebSocket ('ws: // localhost: 8080');
enchufe.addEventListener ('abrir', () =>
consola.log ('Conectado al servidor!');
);
enchufe.addEventListener ('mensaje', (msg) =>
consola.log ('Cliente recibido: $ msg.datos');
);
const sendMsg = () =>
enchufe.enviar ('¿Cómo va amigo!');

Explicación del código

Como con el servidor.js, crearemos un nuevo WebSocket que esté escuchando el puerto 8080, que se puede ver en la localhost: 8080 sección del código.

const socket = new WebSocket ('ws: // localhost: 8080');

En la siguiente línea, addEventListener hace que su cliente escuche cualquier evento que esté sucediendo actualmente. En este caso, sería crear e iniciar el servidor. Una vez que se establece la conexión, el cliente envía un mensaje al terminal.

enchufe.addEventListener ('abrir', () =>
consola.log ('Conectado al servidor!');
);

Una vez más, el cliente escucha cualquier evento que esté sucediendo actualmente. Cuando el servidor envía un mensaje, el cliente lo recibe y luego muestra el mensaje en la terminal.

enchufe.addEventListener ('mensaje', (msg) =>
consola.log ('Cliente recibido: $ msg.datos');
);

Las últimas líneas son simplemente una función en la que el cliente envía un mensaje al servidor. Conectaremos esto a un botón en nuestro archivo html para comprender mejor cómo está funcionando.

const sendMsg = () =>
enchufe.enviar ('¿Cómo va amigo!');

Preparar un archivo HTML

Finalmente, abra el índice.html y agregue una referencia a su cliente.js archivo dentro de él. En mi caso, simplemente agregaré las siguientes líneas de código:






Cliente





Como puede ver en las líneas siguientes, src (dentro de la etiqueta del script) se refiere al archivo javascript del cliente. La función sendMsg, que se creó en el cliente.js, también se ha conectado a la función onClick del botón.


Poniendo todo junto

Ahora puede comenzar a probar su arquitectura de cliente y servidor. Primero, abra la terminal y ejecute el siguiente comando para iniciar su servidor:

$ servidor de nodo

Después de iniciar su servidor, abra el directorio en el que su índice.html está presente y haga doble clic en él para abrirlo en su navegador. Verá aparecer el siguiente mensaje en la terminal indicando que un cliente se ha conectado:

También puede verificar los mensajes enviados desde el servidor al cliente presionando el botón derecho y luego abriendo el Inspeccionar ventana. En esta ventana, haga clic en el Consola sección, y podrá ver los mensajes enviados desde el servidor.

Una vez que haga clic en el botón, tanto el servidor como el cliente podrán enviarse y recibir mensajes entre sí.

Servidor:

Cliente:

Voilà, se ha establecido su conexión WebSocket!

Conclusión

El protocolo WebSocket es una forma excelente de establecer la comunicación entre un cliente y un servidor. Este protocolo se utiliza en varios campos, incluidos los juegos de navegador multijugador, los sistemas de chat de varias plataformas de redes sociales e incluso los procesos de colaboración entre codificadores.

El botón central del mouse no funciona en Windows 10
La botón central del ratón le ayuda a desplazarse por páginas web largas y pantallas con una gran cantidad de datos. Si eso se detiene, bueno, termina...
Cómo cambiar los botones izquierdo y derecho del mouse en una PC con Windows 10
Es una norma que todos los dispositivos de mouse de computadora estén diseñados ergonómicamente para usuarios diestros. Pero hay dispositivos de mouse...
Emule los clics del mouse colocando el mouse con Clickless Mouse en Windows 10
El uso excesivo de un mouse o teclado en una postura incorrecta puede provocar muchos problemas de salud, como tensión, síndrome del túnel carpiano y ...