Mise à jour du protocole
This commit is contained in:
parent
e38fc67814
commit
7b41ef759a
85
protocole.md
85
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`.
|
- 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
|
||||||
|
Loading…
Reference in New Issue
Block a user