WebSockets con Node
Manejo de eventos y mensajes
Manejo de eventos y mensajes
Hasta ahora, hemos configurado un servidor WebSocket básico y probamos las conexiones entre el servidor y el cliente. En este capítulo, profundizaremos en cómo manejar diversos eventos y mensajes para construir una aplicación más robusta y funcional.
Eventos del WebSocket
Existen múltiples eventos que puedes utilizar para gestionar las conexiones de WebSocket. Estos son algunos de los más comunes:
connection
: Se dispara cuando un cliente se conecta al servidor.message
: Se dispara cuando se recibe un mensaje desde un cliente.close
: Se dispara cuando una conexión se cierra.error
: Se dispara cuando ocurre un error en la conexión.
Vamos a ajustar nuestro servidor para manejar estos eventos de forma adecuada.
Manejo del evento de conexión
El evento connection
se gestiona tal y como hicimos en el capítulo anterior. Podemos agregar características adicionales, como el seguimiento de conexiones activas:
javascript
Aquí, mantenemos un Set
de clientes conectados y actualizamos este conjunto cuando un cliente se conecta o se desconecta.
Manejo del evento de mensaje
Gestionamos las comunicaciones entrantes mediante el evento message
. Podemos, por ejemplo, retransmitir los mensajes a todos los clientes conectados:
javascript
En este código, retransmitimos los mensajes recibidos a todos los clientes excepto al cliente emisor. Esto es útil para aplicaciones como chats en tiempo real.
Manejo del evento de cierre
La gestión de la desconexión de clientes la hemos visto parcialmente antes. Aquí está más elaborada:
javascript
Se elimina el cliente desconectado del Set
de clientes activos y se registra la desconexión.
Manejo del evento de error
Para gestionar errores en las conexiones:
javascript
Con esto, podemos registrar los errores ocurridos durante la conexión de WebSocket.
Logica de negocio
Podemos manejar la lógica de negocio que necesitamos aplicar a estos eventos según el caso de uso de nuestra aplicación. Por ejemplo:
Difusión de mensajes
Podemos ajustar nuestro manejo de mensajes para incluir un mecanismo de difusión:
javascript
Imagen Placeholder: [Diagrama de flujo que muestra el proceso de manejo de eventos y difusión de mensajes a múltiples clientes.]
Envío dirigido
Podemos enviar mensajes a clientes específicos utilizando identificadores únicos. Por ejemplo:
javascript
Pings y Pongs
Podemos utilizar pings y pongs para verificar la salud de las conexiones:
javascript
Con todo esto, somos capaces de gestionar eventos y mensajes de manera efectiva para construir aplicaciones robustas con WebSockets y Node.js. ¡Sigamos explorando más características en el próximo capítulo! 🚀