Le "ROOM messenger" protocol est un protocol permettant une discussion entre un nombre indéfini de personnes au travers de ROOMS.
Ce protocol utilise TCP pour la communication.
L'adresse IP connectée par défaut est "localhost", mais chaque client peut utiliser une autre adresse si il le souhaite.
Pour ce qui est du port, le protocol se connecte par défaut au port 1234 mais comme pour l'adresse IP, le client peut choisir
le port de connexion.
Les messages sont encodés en UTF-8, permettant l'utilisation de symboles dans les message et sont délimités par \u0004 (EOF)
Le client se connecte au serveur grâce à son pseudo et son mot de passe. Il a également la possibilité de créer ces derniers
si c'est sa première connexion.
Si lors d'une connexion le nom d'utilisateur n'existe pas ou que le mot de passe entrée est faux, une erreur sera envoyée au client.
Pareil pour une première connexion, si le nom entrée existe déjà, une erreur sera envoyée au client.
Il pourra ensuite se connecter à une ROOM ou en créer une, au choix.
Si la ROOM n'existe pas ou que le mot de passe entré est faux, une erreur sera envoyée au client.
Chaque ROOM est définie par un nom et un mot de passe permettant d'y accéder.
Lorsqu'un client rejoins une ROOM, il peut alors soit envoyer des messages, soit demander de recevoir les messages ayant été écrits dans la ROOM
ou encore un historique complet des discussions de cette ROOM.
Le client peut quitter la ROOM quand il le souhaite.
Le client se login au serveur
LOGIN_USER <login> <password>
-
OK
-
ERROR <errormessage>
: une erreur est apparue. Le message d'erreur peut être :- Invalid login : le login n'existe pas
- Invalid password : le mdp est incorrect
Le client se register au serveur
REGISTER_USER <login> <password>
OK
ERROR User already exists
: une erreur apparaît si le nom entré existe déjà
Le client se déconnecte
QUIT
None.
Le client se connecte à une ROOM
LOGIN_ROOM <name> <password>
OK
ERROR <error message>
: une erreur est apparue. Le code message d'erreur peut-être :- Invalid password : le nom entré ne correspond à aucune ROOM
- Invalid ROOM name : le mot de passe est incorrect
Le client crée une ROOM
REGISTER_ROOM <nom> <mdp>
nom :
: le est client prié d'indiquer le nom de la ROOM.\mdp :
: le est client prié de créer un nouveau mot de passe.\
OK
ERROR <error message>
: une erreur apparaît si le nom entré existe déjà (1) Impossible de créer la salle : le nom entré ne correspond à aucune ROOM
(2) ROOM alrready exists : le mot de passe est incorrect\
Le client se déconnecte
QUIT
None.
Le client écrit un message dans une ROOM
WRITE_MESSAGE <message>
OK
ERROR Impossible d'ajouter le message
: une erreur est apparue car le message ne s'est pas envoyé correctement.
Le client lit un message dans une ROOM
GET_MESSAGES <first line>
- Le serveur envoie au client un array des messages écrits sur la ROOM, à partir de la line indiquée.
ERROR Invalid line number
: une erreur apparaît car il y a eu un problème lors de la lecture d'un message.
Le client se déconnecte de la ROOM
QUIT
- None.