Epitalk — Application de chat IRC temps réel avec Mercure et SSE logo

Epitalk — Application de chat IRC temps réel avec Mercure et SSE

Application de chat temps réel inspirée du protocole IRC, permettant de discuter dans des salons publics ou privés directement depuis le navigateur, avec mise à jour instantanée via Mercure et Server-Sent Events.

Capture d'écran de Epitalk — Application de chat IRC temps réel avec Mercure et SSE

Description du projet

Contexte

Epitalk est une application de chat inspirée du fonctionnement des serveurs IRC classiques, permettant aux utilisateurs de discuter en temps réel dans des salons publics ou via des messages privés.

Le projet a été réalisé dans le cadre d'un projet académique à Epitech, avec pour objectif de concevoir une application de messagerie temps réel complète accessible directement depuis un navigateur.

Plutôt que d'utiliser WebSockets comme dans la plupart des applications de chat modernes, l'application utilise Mercure et Server-Sent Events (SSE) afin d'explorer une autre approche pour gérer les communications temps réel entre le serveur et les clients.

L'application est entièrement fonctionnelle et accessible publiquement : les utilisateurs peuvent simplement choisir un pseudo et rejoindre immédiatement le chat.

Problème

Créer une application de messagerie temps réel implique plusieurs défis techniques :

  • synchroniser les messages entre plusieurs utilisateurs et appareils

  • gérer la création et la gestion des salons de discussion

  • maintenir l'état des utilisateurs connectés

  • transmettre les événements sans recharger la page.

Les solutions classiques utilisent généralement WebSockets, mais d'autres architectures existent pour gérer les flux temps réel.

L'objectif du projet était donc de concevoir une application de chat moderne tout en expérimentant une architecture basée sur Mercure et Server-Sent Events.

Solution

Epitalk repose sur une architecture temps réel combinant un backend AdonisJS et le protocole Mercure pour diffuser les événements vers les clients.

Les clients se connectent à un flux SSE permettant de recevoir instantanément les mises à jour du serveur : nouveaux messages, arrivée d’utilisateurs, création de salons ou changements de statut.

L'interface frontend est développée avec Vue 3 et TypeScript, avec une gestion d’état via Pinia, permettant d'offrir une interface fluide proche des applications de chat modernes.

L'utilisateur peut simplement entrer un pseudonyme pour rejoindre le serveur et commencer à discuter immédiatement.

Fonctionnalités principales

  • connexion instantanée au chat via pseudonyme

  • salons de discussion publics (channels)

  • messagerie privée entre utilisateurs

  • création et suppression de channels

  • liste des utilisateurs connectés dans un salon

  • commandes IRC classiques /join, /list, /users, /nick, /create, /delete, /msg, /leave)

  • bot intégré pour répondre aux commandes

  • mise à jour temps réel des messages et des événements

  • détection des utilisateurs en ligne

  • interface responsive compatible mobile et desktop.

Résultats

Epitalk démontre la mise en œuvre d'une application de chat temps réel complète utilisant une architecture basée sur Mercure et Server-Sent Events.

Le projet met en évidence :

  • la gestion d'événements temps réel côté client et serveur

  • la synchronisation instantanée des données entre plusieurs utilisateur

  • la conception d'une interface de chat moderne avec Vue.js.

Il constitue également une démonstration d’architecture alternative aux WebSockets pour les applications nécessitant des mises à jour temps réel.

Vous avez un projet similaire ? Parlons‑en.

Décrivez-moi votre besoin en quelques lignes : je vous réponds sous 24 h avec de premières pistes et une idée de budget.