Tuto 7 : reconstruire le chat à partir de sa spécification

Vous avez tout vu. Ce tuto ne vous donne que la spécification et l'ordre de travail ; le chat livré sert de correction.

La spécification

Un salon unique. Écrans :

Règles : seul un participant identifié peut poster ou signaler qu'il écrit. Plusieurs onglets d'un même pseudo comptent pour un participant. La mention d'écriture s'efface à l'envoi ou après 3 secondes. Un message renvoyé après une coupure (même ref) n'est enregistré qu'une fois. Une session déconnectée disparaît de la liste.

L'ordre de travail

  1. Découper

    Suivez la méthode. Attendu : deux composants client (un par écran), deux composants serveur (connexion/présence, messages), un canal. Pas un composant par widget, pas un message par verbe.

  2. Écrire le catalogue du canal

    Sept messages suffisent. Pensez oneOf pour les réponses qui ont deux formes (accord/refus, message/historique). Écrivez les exemples et contre-exemples. Le graphe attendu.

  3. Le serveur d'abord

    Composant d'auth : allowMessage au connected, identité en session.data, présence diffusée ciblée par id. Composant messages : enregistre, diffuse, sert l'historique à l'accord. Testez-les avec une sonde avant d'écrire une ligne de client.

  4. Le client ensuite

    Chaque écran gère sa visibilité en écoutant les messages, sans composant de navigation ni état partagé hors catalogue.

  5. Composer, auditer

    index.js et index.html. L'audit doit être vide, à un orphelin près côté client : connection_event, publié par le canal client mais que personne n'écoute.

  6. Comparer

    Lecture guidée du chat livré, fichier par fichier, ou téléchargez-le (chat_fwtozza.zip) pour le faire tourner chez vous. Les différences qui comptent sont celles qui touchent une règle ; le reste est du style.