Chuck's Academy

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:

  1. connection: Se dispara cuando un cliente se conecta al servidor.
  2. message: Se dispara cuando se recibe un mensaje desde un cliente.
  3. close: Se dispara cuando una conexión se cierra.
  4. 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! 🚀


Pregúntame lo que sea