En règle générale, les architectures Web répondent au modèle client-serveur : le client soumet une requête HTTP (pull request) au serveur qui réagit en envoyant une réponse HTTP en retour. Dans ce modèle, le serveur est passif dans l'attente de requêtes émanant de clients.

Dans certaines applications, il peut être nécessaire que le serveur soit actif et puisse envoyer des messages (push events) aux clients connectés sans avoir été sollicité. Cette communication bidirectionnelle entre le client et le serveur repose sur les sockets.

L'objectif de cette activité est de déployer un serveur de chat afin de se familiariser avec la technologie des sockets en mettant en place un protocole simple d'envoi de messages entre le client et le serveur. Elle se décomposera en deux grandes étapes :

  1. Déploiement d'un serveur HTTP avec Node.js et Express pour servir l'interface Web du client chat.
  2. Mise en place des sockets avec socket.io pour l'échange de messages entre les clients via le serveur.
aperçu du client chat

Initialisation du projet

Tout d'abord, vous allez créer un nouveau répertoire dédié à cette activité et initialiser votre projet Node.js en créant votre fichier package.json.

mkdir chat
cd chat
npm init

Commencer