Mise à jour du protocole

This commit is contained in:
Phuntsok Drak-pa
2018-02-27 12:11:50 +01:00
committed by GitHub
parent e38fc67814
commit 7b41ef759a
+58 -27
View File
@@ -8,6 +8,12 @@ Quelques règles pour assurer le bon fonctionnement du protocole :
- Chaque ligne se termine par les caractères `\r\n`. - 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).
Liste d’abbréviations :
- "C" : client unique
- "A" : ensemble des clients
- "S" : serveur
Connexion au 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 ### Requête 1.1
Connexion sans nom d’utilisateur fournit par le client, `<version>` 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, `<version>` devant être remplacé par la version utilisée par le client (tel que `0.5` ou `1.0`).
``` text ``` text
PROT <version> CONNECT NEW PROT <version> CONNECT NEW
@@ -23,6 +31,8 @@ PROT <version> CONNECT NEW
### Requête 1.2 ### Requête 1.2
C->S
Connexion au serveur mentionnant le nom d’utilisateur Connexion au serveur mentionnant le nom d’utilisateur
``` text ``` 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 ### 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. Réponse à cette requête du serveur vers le client (serveur vers client), requête du nom d'utilisateur.
``` text ``` text
PROT <version> REQ NAME PROT <version> NAME REQ
``` ```
### Requête 1.4 ### Requête 1.4
C->S
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 ``` text
@@ -49,26 +63,42 @@ PROT <version> NAME <username>
### Requête 1.5 ### 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 ``` text
PROT <version> OK WELCOME PROT <version> NAME OK
``` ```
### Requête 1.6 ### 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 ``` text
PROT <version> FAILURE PROT <version> NAME FAILURE
``` ```
### Requête 1.7 ### 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. 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 ``` text
JOIN <username> PROT <version> JOIN <username>
```
### Requête 1.8
S->C
Requête confirmant au client sa connexion
``` text
PROT <version> WELCOME
``` ```
Déconnexion du serveur Déconnexion du serveur
@@ -78,7 +108,12 @@ Gestion du départ des utilisateurs du serveur
### Requête 2.1 ### 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 ``` text
PROT <version> BYE PROT <version> BYE
@@ -86,7 +121,9 @@ PROT <version> BYE
### Requête 2.2 ### 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 ``` text
PROT <version> LOGOUT <username> PROT <version> LOGOUT <username>
@@ -99,6 +136,8 @@ Vérification de la connexion des clients avec le serveur. Chaque minute, la req
### Requête 3.1 ### Requête 3.1
S->A
Envoi d’un ping du serveur vers chaque client. Envoi d’un ping du serveur vers chaque client.
``` text ``` text
@@ -107,6 +146,8 @@ PROT <version> PING
### Requête 3.2 ### Requête 3.2
C->S
Envoi de la réponse du client au serveur pour la [requête 3.1](#requête-31) Envoi de la réponse du client au serveur pour la [requête 3.1](#requête-31)
``` text ``` text
@@ -117,6 +158,9 @@ PROT <version> PONG
### Échange de messages publics ### Échange de messages publics
#### Requête 4.1.1 #### Requête 4.1.1
C->S
Envoi depuis le client vers le serveur d’un message public Envoi depuis le client vers le serveur d’un message public
``` text ``` text
PROT <version> MSG <message> PROT <version> MSG <message>
@@ -124,6 +168,8 @@ PROT <version> MSG <message>
#### Requête 4.1.2 #### Requête 4.1.2
S->A
Transmission d’un message d’un client vers les autres clients Transmission d’un message d’un client vers les autres clients
``` text ``` text
PROT <version> FROM <username> MSG <message> PROT <version> FROM <username> MSG <message>
@@ -133,24 +179,7 @@ PROT <version> FROM <username> MSG <message>
#### Requête 4.2.1 #### 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) C->S
``` text
PROT <version> PRIV TO <dest-username> MSG <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 <version> PRIV FROM <username> MSG <message>
```
### 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)
@@ -160,6 +189,8 @@ PROT <version> PRIV TO <dest-username> MSG <msg>
#### Requête 4.2.2 #### 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) Transmission d’un message d’un client vers un autre client uniquement, spécifié par son nom d’utilisateur (serveur vers client)
``` text ``` text