diff --git a/protocole.md b/protocole.md index 608fc7e..8477837 100644 --- a/protocole.md +++ b/protocole.md @@ -1,27 +1,21 @@ -[WARNING] Deprecated: markdown_github. Use gfm instead. Proposition de protocole ======================== -Proposition de protocole pour la communication inter-serveurs/clients -pour le projet de chat textuel. +Proposition de protocole pour la communication inter-serveurs/clients pour le projet de chat textuel. -Quelques règles pour assurer le bon fonctionnement du protocole : +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). +- Un nom d’utilisateur ne peut contenir que des caractères alphanumériques (a-z, A-Z, 0-9). Connexion au serveur -------------------- -Gestion de l’arrivée des utilisateurs sur le serveur (choix du nom -d’utilisateur et notification des clients). +Gestion de l’arrivée des utilisateurs sur le serveur (choix du nom d’utilisateur et notification des clients). ### Requête 1.1 -Connexion sans nom d’utilisateur fournit par le client, `` -devant être remplacé par la version utilisée par le cliet (tel que `0.5` -ou `1.0`). Client vers serveur. +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. ``` text PROT CONNECT NEW @@ -35,15 +29,11 @@ Connexion au serveur mentionnant le nom d’utilisateur PROT CONNECT USER ``` -Selon si la connexion est établie avec ce nom d'utilisateur, la -[1.1.4](#*Requête 1.4) ou [1.1.5](#*Requête 1.5) sera renvoyée. Si la -requête [1.1.5](#*Requête 1.5) est renvoyée, la [1.1.2](#*Requête 1.2) -suivra immédiatement après. +Selon si la connexion est établie avec ce nom d'utilisateur, la [requête 1.4](#requête-14) ou la [requête 1.5](#requête-15) sera renvoyée. Si la requête [requête 1.5](#requête-15) est renvoyée, la [requête 1.2](#requête-12) suivra immédiatement après. ### Requête 1.3 -Réponse à cette requête du serveur vers le client (serveur vers client), -requête du nom d'utilisateur. +Réponse à cette requête du serveur vers le client (serveur vers client), requête du nom d'utilisateur. ``` text PROT REQ NAME @@ -51,8 +41,7 @@ PROT REQ NAME ### Requête 1.4 -Réponse à la requête du serveur (client vers serveur), envoi du nom -d’utilisateur. +Réponse à la requête du serveur (client vers serveur), envoi du nom d’utilisateur. ``` text PROT NAME @@ -60,8 +49,7 @@ 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) +Réponse du serveur si l'enregistrement du nom d'utilisateur s’est bien déroulé (serveur vers client) ``` text PROT OK WELCOME @@ -69,9 +57,7 @@ PROT OK WELCOME ### 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 -[1.1.2](#*Requête 1.2) est envoyée vers le client. +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. ``` text PROT FAILURE @@ -79,9 +65,7 @@ PROT FAILURE ### Requête 1.7 -Conjointement à la [1.1.4](#*Requête 1.4), cette requête sera envoyée à -tout autre client connecté pour les notifier de la connexion d’un nouvel -utilisateur. +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 @@ -102,8 +86,7 @@ PROT BYE ### Requête 2.2 -Envoi du serveur vers chaque client de la notification de déconnexion -d'un client +Envoi du serveur vers chaque client de la notification de déconnexion d'un client ``` text PROT LOGOUT @@ -112,9 +95,7 @@ PROT LOGOUT Ping ---- -Vérification de la connexion des clients avec le serveur. Chaque minute, -la requête [1.3.1](#*Requête 3.1) est envoyée à chaque client qui ont -tous trois secondes pour répondre avec la [1.3.2](#*Requête 3.2). +Vérification de la connexion des clients avec le serveur. Chaque minute, la requête [requête 3.1](#requête-31) est envoyée à chaque client qui ont tous trois secondes pour répondre avec la [requête 3.2](##requête-32). ### Requête 3.1 @@ -126,49 +107,61 @@ PROT PING ### Requête 3.2 -Envoi de la réponse du client au serveur pour la [1.3.1](#*Requête 3.1) +Envoi de la réponse du client au serveur pour la [requête 3.1](#requête-31) ``` text PROT PONG ``` -Échange de messages -------------------- - -### Messages publics +## Échange de messages +### Échange de messages publics #### Requête 4.1.1 - - Envoi depuis le client vers le serveur d’un message public - - ``` text - PROT MSG - ``` +Envoi depuis le client vers le serveur d’un message public +``` text +PROT MSG +``` #### Requête 4.1.2 - Transmission d’un message d’un client vers les autres clients +Transmission d’un message d’un client vers les autres clients +``` text +PROT FROM MSG +``` + +### Échange de messages privés + +#### 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 +``` - ``` text - PROT FROM MSH - ``` ### Messages privés #### 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) +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 - ``` +``` 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) +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 - ``` +``` text +PROT PRIV FROM MSG +```