
Epitalk — Aplicación de chat IRC en tiempo real con Mercure y SSE
Febrero de 2023
Aplicación de chat en tiempo real inspirada en el protocolo IRC, que permite discutir en salones públicos o privados directamente desde el navegador, con actualizaciones instantáneas mediante Mercure y Server-Sent Events (SSE).

Vista previa del proyecto
Descubre la interfaz y las funcionalidades principales


Descripción del proyecto
Contexto
Epitalk es una aplicación de chat inspirada en el funcionamiento de los servidores IRC clásicos, que permite a los usuarios comunicarse en tiempo real en salones públicos o mediante mensajes privados.
El proyecto fue desarrollado como parte de un trabajo académico en Epitech, con el objetivo de diseñar una aplicación de mensajería en tiempo real completa y accesible directamente desde un navegador.
En lugar de utilizar WebSockets, como en la mayoría de las aplicaciones de chat modernas, la aplicación emplea Mercure y Server-Sent Events (SSE) para explorar otro enfoque en la gestión de comunicaciones en tiempo real entre el servidor y los clientes.
La aplicación está completamente funcional y es accesible públicamente: los usuarios solo deben elegir un seudónimo para unirse al chat de inmediato.
Problema
Crear una aplicación de mensajería en tiempo real implica varios desafíos técnicos:
- Sincronizar los mensajes entre múltiples usuarios y dispositivos
- Gestionar la creación y administración de salones de discusión
- Mantener el estado de los usuarios conectados
- Transmitir eventos sin recargar la página
Las soluciones clásicas suelen utilizar WebSockets, pero existen otras arquitecturas para gestionar flujos en tiempo real.
El objetivo del proyecto era, por tanto, diseñar una aplicación de chat moderna mientras se experimentaba con una arquitectura basada en Mercure y Server-Sent Events.
Solución
Epitalk se basa en una arquitectura en tiempo real que combina un backend en AdonisJS y el protocolo Mercure para difundir eventos hacia los clientes.
Los clientes se conectan a un flujo SSE que permite recibir actualizaciones instantáneas del servidor: nuevos mensajes, llegada de usuarios, creación de salones o cambios de estado.
La interfaz frontend está desarrollada con Vue 3 y TypeScript, con gestión de estado mediante Pinia, lo que permite ofrecer una interfaz fluida similar a las aplicaciones de chat modernas.
El usuario solo debe introducir un seudónimo para unirse al servidor e iniciar la conversación al instante.
Funcionalidades principales
- Conexión instantánea al chat mediante seudónimo
- Salones de discusión públicos (channels)
- Mensajería privada entre usuarios
- Creación y eliminación de channels
- Lista de usuarios conectados en un salón
- Comandos IRC clásicos (/join, /list, /users, /nick, /create, /delete, /msg, /leave)
- Bot integrado para responder comandos
- Actualización en tiempo real de mensajes y eventos
- Detección de usuarios en línea
- Interfaz responsive compatible con móviles y escritorio
Resultados
Epitalk demuestra la implementación de una aplicación de chat en tiempo real completa utilizando una arquitectura basada en Mercure y Server-Sent Events.
El proyecto destaca:
- La gestión de eventos en tiempo real en el lado del cliente y el servidor
- La sincronización instantánea de datos entre múltiples usuarios
- El diseño de una interfaz de chat moderna con Vue.js
Además, constituye una demostración de una arquitectura alternativa a los WebSockets para aplicaciones que requieren actualizaciones en tiempo real.
¿Tienes un proyecto similar? Hablemos
¿Buscas un desarrollador freelance para concretar tu idea? Hablemos de tu proyecto web, móvil o software.
Proyectos similares

ApartEasy — Centralice y comparta sus anuncios inmobiliarios
2023-05-22Aplicación web colaborativa para centralizar y organizar anuncios inmobiliarios. Compare viviendas, comparta sus favoritos y estime los tiempos de desplazamiento con un mapa interactivo.

EpiTrip — Planificación de viajes en lenguaje natural con IA
2023-01-10Asistente de planificación de viajes que utiliza el NLP para comprender una solicitud en lenguaje natural, extraer las ciudades y calcular el itinerario óptimo a partir de los datos de la SNCF con visualización en mapa interactivo.

Primea RP — Sitio oficial del servidor GTA 5 RolePlay
2022-04-24Sitio oficial del servidor FR GTA 5 RolePlay FiveM Primea RP: presentación del servidor, reglamento, guías y acceso a la comunidad Discord para unirse a la experiencia roleplay.