Add client communication spec

This commit is contained in:
louis chauvet 2018-11-13 15:48:00 +01:00
parent d23cf2bfda
commit 42a5d835dc

View File

@ -138,3 +138,127 @@ Réponse à `updateAsk`.
Permet de transférer une requête directement grâce au champ `dest` de la requête à transférer.
Communication entre un client et un noeud
-----------------------------------------
### Register ###
###### En-tête ######
EICP2P2 V1
dest: ip:port
type: register
###### Contenu ######
Rien
###### Utilisation ######
Cette requête est envoyée par un client pour s'enregistrer sur le réseau. Le serveur répond avec un `registerACK`.
### RegisterACK ###
###### En-tête ######
EICP2P2 V1
dest: ip:port
type: registerACK
###### Contenu ######
id_noeud::id_client
###### Utilisation ######
Réponse à un `register`. Le noeud communique au client son id et l'id du noeud auquel il est connecté.
### Send ###
###### En-tête ######
EICP2P2 V1
dest: ip:port
type: send
to: id_client_destinataire
###### Contenu ######
message_a_envoyer
###### Utilisation ######
Cette requête est envoyé par un client enregistré à un noeud pour envoyer un message à un autre client. Le noeud va tansférer le message au client, soit directement, soit par d'autre noeuds. La requête `sendACK` est envoyée en retour.
### SendACK ###
###### En-tête ######
EICP2P2 V1
dest: ip:port
type: sendACK
###### Contenu ######
Rien
###### Utilisation ######
Cette requête est envoyée par le destinataire d'une requête `send` après avoir transféré le message et avoir reçu le sendACK associé à l'envoi.
C1 N1 C2
> send > > send >
Wait sendACK from C2
< sendACK < < sendACK <
### Exit ###
###### En-tête ######
EICP2P2 V1
dest: ip:port
type: exit
###### Contenu ######
id_client
###### Utilisation ######
Envoyé par le client pour se déconnecter du réseau. Ne demande aucune réponse de la part du noeud.
### Ping ###
###### En-tête ######
EICP2P2 V1
dest: ip:port
type: ping
###### Contenu ######
Rien
###### Utilisation ######
Envoyé par le serveur pour vérifier qu'un client est encore en ligne. Exige une réponse `pingACK` de la part du client.
### PingACK ###
###### En-tête ######
EICP2P2 V1
dest: ip:port
type: pingACK
###### Contenu ######
Rien
###### Utilisation ######
Réponse duclient à une requête de ping.