-----------------------
A. Introduction
----------------\r
-
+---------------
Ce document a pour but de décrire la communication client-serveur du site euphorik.\r
Les messages échangés sont basés sur le format JSON.
Ce document remplace 'protocole2.txt'.
\r
-B. Principe
------------
-
+B. Principes
+------------
Enregistrement:\r
* Permet de créer un compte, un cookie est donné en retour. Ce cookie doit être stocké par le client pour pouvoir s'authentifier par la suite.
Rafraichissement:
* Le client envoie une demande au serveur avec l'id du dernier message (via XMLHttpRequest ou un function de JQuery)
* Le serveur maintient la connexion bloquée si le client est à jour.
- * Dès qu'un nouveau message arrive, le serveur débloque la connexion est envoie le ou les messages manquants.
+ * Dès qu'un nouveau message arrive, le serveur débloque la connexion et envoie le ou les messages manquants.
C. Protocole
------------
c : client
s : server
-Les messages client vers serveur sont envoyé par HTTP-POST
+Les messages client vers serveur sont envoyés par HTTP-POST.
+
+A toutes les requêtes le serveur peut répondre une erreur :
+<error>
+ {
+ "reply" : "error",
+ "error_message" : "blabla"
+ }
+
+Message ok générique :
+<ok>
+ {
+ "reply" : "ok"
+ }
C.1. Login
s -> c\r
{\r
"reply" : "login",\r
- "status" : "registration_ok" | "authentification_ok" | "error",\r
+ "status" : "registration_ok" | "authentification_ok",\r
"cookie" : "LKJDLAKSJBFLKASN",\r
"id" : 193,\r
"pseudo" : "Paul",\r
"main_page" : 1,\r
"conversations" : [\r
{\r
- "racine" : 123,\r
+ "root" : 123,\r
"page" : 1\r
}\r
- ],\r
- "error_message" : "blabla"\r
+ ]\r
}
\r
C.3. Profile
------------
-Modification du profile, seul "cookie" est obligatoire.
c -> s\r
{\r
"pseudo" : "Paul",\r
"email" : "paul@pierre.com",\r
"css" : "css/3/euphorik.css",\r
- "mainPage" : "1",\r
+ "main_page" : 1,\r
"conversations" : [\r
{\r
- "racine" : "4F",\r
+ "root" : 123,\r
"page" : 1\r
}\r
- ],\r
- } \r
+ ]\r
+ }\r
-s -> c\r
- {\r
- "reply" : "ok" | "error",\r
- "error_message" : "blabla"\r
- }
+s -> c
+ <ok>
+ou
+ <error>
C.4. Wait event
"action" : "wait_event",\r
"cookie" : "LKJDLAKSJBFLKASN",\r
"message_count" : 10,\r
- "last_message_id" : 163\r
+ "last_message_id" : 163,
+ "main_page" : 1,
+ "conversations" : [
+ {
+ "root" : 123,
+ "page" : 1
+ }
+ ]\r
}
s -> c\r
"reply" : "error",\r
"error_message" : "blabla"\r
}
+\r
+\r
+C.5. Envoie troll\r
+-------------------\r
+\r
+c -> s\r
+ {\r
+ "action" : "put_troll",\r
+ "cookie" : "LKJDLAKSJBFLKASN",\r
+ "content" : "Un bon troll velu !"\r
+ }\r
+ \r
+s -> c\r
+ {\r
+ "reply" : "ok" | "error",\r
+ "error_message" : "blabla"\r
+ }\r
+
-
-C.5. Envoie message
+C.6. Envoie message
-------------------
Le client envoie un message, le message peut répondre à un certain nombre d'autres messages.
"answer_to" n'est pas obligatoire.\r
"cookie" : "LKJDLAKSJBFLKASN",\r
"nick" : "Paul",\r
"content" : "Bonjour",\r
+ "Troll" : 45,\r
"answer_to" : [ 345, 532, ... ]\r
}
}
\r
\r
-C.6 Ajout d'une correction d'un messages\r
+C.7. Ajout d'une correction d'un messages\r
----------------------------------------\r
Le client envoie un correctif sous la forme de texte supplémentaire à appondre au dernier messages.\r
Le message est appondu avec un " +++ " devant, par exemple :\r