Passer au contenu principal
Menu
Full Stack

CHAT EN TEMPS RÉEL

Application de messagerie instantanée utilisant WebSockets et stockage persistant.

Dépôt bientôt disponible
Vue.jsSocket.ioNode.jsMariaDB
Phase 1

Contexte

Comprendre les applications temps réel (Slack, Discord). HTTP classique requête-réponse ne suffit pas. Besoin connexions ouvertes persistantes. Exploration WebSockets + state management temps réel.

Phase 2

Méthodologie d'Apprentissage

  1. 1

    Étude protocole WebSocket + bibliothèque Socket.io

  2. 2

    Prototype minimal : chat room unique en 50 lignes

  3. 3

    Ajout progressif : rooms multiples → messages persistés → indicateurs présence

  4. 4

    Frontend Vue.js avec store réactif synchronisé Socket.io events

  5. 5

    Tests charge Artillery : validation tenue 100 connexions simultanées

Phase 3

Défis Techniques

Utilisateurs fantasmes (deco browser pas détectée)

Solution : heartbeat serveur (timeout 30s) + cleanup sessions fantômes.

Messages arrivent désordonnés

Latence réseau crée désordre. Solution : timestamp serveur + tri côté client = ordre chronologique garantie.

Scaling horizontal avec Socket.io

Un seul serveur Node impossible de scaler. Solution : adapter Redis pour Socket.io (événements partagés entre instances).

Phase 4

Résultats

  • Chat fonctionnel : 100 utilisateurs simultanés

  • Latence livraison ~50ms

  • Paradigme temps réel maîtrisé (WebSockets, event-driven, state sync)

  • Transférable : notifications push, dashboards live, jeux multijoueur

Explore More

All Projects