From 7b41ef759a48234067ba221a4beafa1110becd9b Mon Sep 17 00:00:00 2001 From: Phuntsok Drak-pa Date: Tue, 27 Feb 2018 12:11:50 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20protocole?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocole.md | 85 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/protocole.md b/protocole.md index 32b13c3..a0567dc 100644 --- a/protocole.md +++ b/protocole.md @@ -8,6 +8,12 @@ Quelques règles pour assurer le bon fonctionnement du protocole : - Chaque ligne se termine par les caractères `\r\n`. - Un nom d’utilisateur ne peut contenir que des caractères alphanumériques (a-z, A-Z, 0-9). +Liste d’abbréviations : + +- "C" : client unique +- "A" : ensemble des clients +- "S" : serveur + Connexion au serveur -------------------- @@ -15,7 +21,9 @@ Gestion de l’arrivée des utilisateurs sur le serveur (choix du nom d’utilis ### Requête 1.1 -Connexion sans nom d’utilisateur fournit par le client, `` devant être remplacé par la version utilisée par le client (tel que `0.5` ou `1.0`). Client vers serveur. +C->S + +Connexion sans nom d’utilisateur fournit par le client, `` devant être remplacé par la version utilisée par le client (tel que `0.5` ou `1.0`). ``` text PROT CONNECT NEW @@ -23,6 +31,8 @@ PROT CONNECT NEW ### Requête 1.2 +C->S + Connexion au serveur mentionnant le nom d’utilisateur ``` text @@ -33,14 +43,18 @@ Selon si la connexion est établie avec ce nom d'utilisateur, la [requête 1.4]( ### Requête 1.3 +S->C + Réponse à cette requête du serveur vers le client (serveur vers client), requête du nom d'utilisateur. ``` text -PROT REQ NAME +PROT NAME REQ ``` ### Requête 1.4 +C->S + Réponse à la requête du serveur (client vers serveur), envoi du nom d’utilisateur. ``` text @@ -49,26 +63,42 @@ PROT NAME ### Requête 1.5 -Réponse du serveur si l'enregistrement du nom d'utilisateur s’est bien déroulé (serveur vers client) +S->C + +Réponse du serveur si l'enregistrement du nom d'utilisateur s’est bien déroulé, immédiatement suivi par la [requête 1.9](#requête-18) ``` text -PROT OK WELCOME +PROT NAME OK ``` ### Requête 1.6 -Réponse du serveur si l'enregistrement du nom d'utilisateur a rencontré une erreur (nom déjà utilisé,…) (serveur vers client). La [requête 1.2](#requête-12) est envoyée vers le client. +S->C + +Réponse du serveur si l'enregistrement du nom d'utilisateur a rencontré une erreur (nom déjà utilisé,…) (serveur vers client). ``` text -PROT FAILURE +PROT NAME FAILURE ``` ### Requête 1.7 +S->A + Conjointement à la [requête 1.4](#requête-14), cette requête sera envoyée à tout autre client connecté pour les notifier de la connexion d’un nouvel utilisateur. ``` text -JOIN +PROT JOIN +``` + +### Requête 1.8 + +S->C + +Requête confirmant au client sa connexion + +``` text +PROT WELCOME ``` Déconnexion du serveur @@ -78,7 +108,12 @@ Gestion du départ des utilisateurs du serveur ### Requête 2.1 -Envoi du client vers le serveur le notifiant de sa déconnexion +C->S +S->C + +Du client vers le serveur : notification de déconnexion du client au serveur. + +Du serveur vers le client : confirmation de déconnexion du client depuis le serveur. ``` text PROT BYE @@ -86,7 +121,9 @@ PROT BYE ### Requête 2.2 -Envoi du serveur vers chaque client de la notification de déconnexion d'un client +S->A + +Notification aux clients de la déconnexion d’un autre client. ``` text PROT LOGOUT @@ -99,6 +136,8 @@ Vérification de la connexion des clients avec le serveur. Chaque minute, la req ### Requête 3.1 +S->A + Envoi d’un ping du serveur vers chaque client. ``` text @@ -107,6 +146,8 @@ PROT PING ### Requête 3.2 +C->S + Envoi de la réponse du client au serveur pour la [requête 3.1](#requête-31) ``` text @@ -117,6 +158,9 @@ PROT PONG ### Échange de messages publics #### Requête 4.1.1 + +C->S + Envoi depuis le client vers le serveur d’un message public ``` text PROT MSG @@ -124,6 +168,8 @@ PROT MSG #### Requête 4.1.2 +S->A + Transmission d’un message d’un client vers les autres clients ``` text PROT FROM MSG @@ -133,24 +179,7 @@ PROT FROM MSG #### Requête 4.2.1 -Transmission d’un message d’un client vers un autre client uniquement, spécifié par son nom d’utilisateur (client vers serveur) - -``` text -PROT PRIV TO MSG -``` - -#### Requête 4.2.2 - -Transmission d’un message d’un client vers un autre client uniquement, spécifié par son nom d’utilisateur (serveur vers client) - -``` text -PROT PRIV FROM MSG -``` - - -### Messages privés - -#### Requête 4.2.1 +C->S Transmission d’un message d’un client vers un autre client uniquement, spécifié par son nom d’utilisateur (client vers serveur) @@ -160,6 +189,8 @@ PROT PRIV TO MSG #### Requête 4.2.2 +S->C + Transmission d’un message d’un client vers un autre client uniquement, spécifié par son nom d’utilisateur (serveur vers client) ``` text