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 :
- Connexion : pseudo (3 à 30 caractères) et mot de passe (3 caractères minimum). Un pseudo inconnu est créé ; un pseudo connu doit donner le bon mot de passe. En cas de refus, le pseudo reste, le mot de passe est vidé.
- Fil : la liste des connectés (avec la mention « est en train d'écrire »), l'historique à l'arrivée, les messages au fil de l'eau, les lignes « a rejoint / a quitté le salon », une saisie, un
/quit.
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
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.
Écrire le catalogue du canal
Sept messages suffisent. Pensez
oneOfpour les réponses qui ont deux formes (accord/refus, message/historique). Écrivez les exemples et contre-exemples. Le graphe attendu.Le serveur d'abord
Composant d'auth :
allowMessageauconnected, identité ensession.data, présence diffusée ciblée parid. Composant messages : enregistre, diffuse, sert l'historique à l'accord. Testez-les avec une sonde avant d'écrire une ligne de client.Le client ensuite
Chaque écran gère sa visibilité en écoutant les messages, sans composant de navigation ni état partagé hors catalogue.
Composer, auditer
index.jsetindex.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.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.