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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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`.
- Un nom dutilisateur ne peut contenir que des caractères alphanumériques (a-z, A-Z, 0-9).
Liste dabbréviations :
- "C" : client unique
- "A" : ensemble des clients
- "S" : serveur
Connexion au serveur
--------------------
@ -15,7 +21,9 @@ Gestion de larrivée des utilisateurs sur le serveur (choix du nom dutilis
### Requête 1.1
Connexion sans nom dutilisateur 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 dutilisateur fournit par le client, `<version>` devant être remplacé par la version utilisée par le client (tel que `0.5` ou `1.0`).
``` text
PROT <version> CONNECT NEW
@ -23,6 +31,8 @@ PROT <version> CONNECT NEW
### Requête 1.2
C->S
Connexion au serveur mentionnant le nom dutilisateur
``` 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 <version> REQ NAME
PROT <version> NAME REQ
```
### Requête 1.4
C->S
Réponse à la requête du serveur (client vers serveur), envoi du nom dutilisateur.
``` text
@ -49,26 +63,42 @@ PROT <version> NAME <username>
### Requête 1.5
Réponse du serveur si l'enregistrement du nom d'utilisateur sest bien déroulé (serveur vers client)
S->C
Réponse du serveur si l'enregistrement du nom d'utilisateur sest bien déroulé, immédiatement suivi par la [requête 1.9](#requête-18)
``` text
PROT <version> OK WELCOME
PROT <version> 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 <version> FAILURE
PROT <version> 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 dun nouvel utilisateur.
``` 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
@ -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 <version> BYE
@ -86,7 +121,9 @@ PROT <version> 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 dun autre client.
``` text
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
S->A
Envoi dun ping du serveur vers chaque client.
``` text
@ -107,6 +146,8 @@ PROT <version> 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 <version> PONG
### Échange de messages publics
#### Requête 4.1.1
C->S
Envoi depuis le client vers le serveur dun message public
``` text
PROT <version> MSG <message>
@ -124,6 +168,8 @@ PROT <version> MSG <message>
#### Requête 4.1.2
S->A
Transmission dun message dun client vers les autres clients
``` text
PROT <version> FROM <username> MSG <message>
@ -133,24 +179,7 @@ PROT <version> FROM <username> MSG <message>
#### Requête 4.2.1
Transmission dun message dun client vers un autre client uniquement, spécifié par son nom dutilisateur (client vers serveur)
``` text
PROT <version> PRIV TO <dest-username> MSG <msg>
```
#### Requête 4.2.2
Transmission dun message dun client vers un autre client uniquement, spécifié par son nom dutilisateur (serveur vers client)
``` text
PROT <version> PRIV FROM <username> MSG <message>
```
### Messages privés
#### Requête 4.2.1
C->S
Transmission dun message dun client vers un autre client uniquement, spécifié par son nom dutilisateur (client vers serveur)
@ -160,6 +189,8 @@ PROT <version> PRIV TO <dest-username> MSG <msg>
#### Requête 4.2.2
S->C
Transmission dun message dun client vers un autre client uniquement, spécifié par son nom dutilisateur (serveur vers client)
``` text