X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=doc%2Fprotocole3.txt;h=fdb68df11f4cb4ae038def96a7e32dd31f03819b;hb=b5878679d51e91e8a86dd042251c91290bf8caf2;hp=4cf6255794a1fd6b68ca0a5ea1f6c24f8f7875c5;hpb=e9cb067c980b39000466cbf7c950f6d012c0d1bf;p=euphorik.git diff --git a/doc/protocole3.txt b/doc/protocole3.txt index 4cf6255..fdb68df 100644 --- a/doc/protocole3.txt +++ b/doc/protocole3.txt @@ -2,16 +2,14 @@ Euphorik - Protocole v3 ----------------------- A. Introduction ---------------- - +--------------- Ce document a pour but de décrire la communication client-serveur du site euphorik. Les messages échangés sont basés sur le format JSON. Ce document remplace 'protocole2.txt'. -B. Principe ------------ - +B. Principes +------------ Enregistrement: * 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. @@ -22,14 +20,27 @@ Authentification: 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 : + + { + "reply" : "error", + "error_message" : "blabla" + } + +Message ok générique : + + { + "reply" : "ok" + } C.1. Login @@ -57,7 +68,7 @@ ou s -> c { "reply" : "login", - "status" : "registration_ok" | "authentification_ok" | "error", + "status" : "registration_ok" | "authentification_ok", "cookie" : "LKJDLAKSJBFLKASN", "id" : 193, "pseudo" : "Paul", @@ -67,11 +78,10 @@ s -> c "main_page" : 1, "conversations" : [ { - "racine" : 123, + "root" : 123, "page" : 1 } - ], - "error_message" : "blabla" + ] } @@ -86,7 +96,6 @@ c -> s C.3. Profile ------------ -Modification du profile, seul "cookie" est obligatoire. c -> s { @@ -97,20 +106,19 @@ c -> s "pseudo" : "Paul", "email" : "paul@pierre.com", "css" : "css/3/euphorik.css", - "mainPage" : "1", + "main_page" : 1, "conversations" : [ { - "racine" : "4F", + "root" : 123, "page" : 1 } - ], - } + ] + } -s -> c - { - "reply" : "ok" | "error", - "error_message" : "blabla" - } +s -> c + +ou + C.4. Wait event @@ -123,7 +131,14 @@ c -> s "action" : "wait_event", "cookie" : "LKJDLAKSJBFLKASN", "message_count" : 10, - "last_message_id" : 163 + "last_message_id" : 163, + "main_page" : 1, + "conversations" : [ + { + "root" : 123, + "page" : 1 + } + ] } s -> c @@ -133,21 +148,24 @@ Le format de la date n'est pas formel. { "reply" : "new_messages", "conversations" : [ - "last_page" : true | false, - "messages" : [ - "id" : 54, - "date" : "Hier 17:26:54", - "system" : true | false, - "owner" : true | false, - "answered" : true | false, - "is_a_reply" : true | false, - "nick" : "Paul", - "login" : "paul_22", - "content" : "Salut", - "answer_to" : [ - { "id" : 123, "pseudo" : "Pierre", "login" : "pierre_45" } + { + "last_page" : true | false, + "messages" : [ + "id" : 54, + "date" : "Hier 17:26:54", + "system" : true | false, + "owner" : true | false, + "answered" : true | false, + "is_a_reply" : true | false, + "nick" : "Paul", + "login" : "paul_22", + "content" : "Salut", + "answer_to" : [ + { "id" : 123, "pseudo" : "Pierre", "login" : "pierre_45" } + ] ] - ] + } + ... ] } ou @@ -161,9 +179,26 @@ ou "reply" : "error", "error_message" : "blabla" } + + +C.5. Envoie troll +------------------- + +c -> s + { + "action" : "put_troll", + "cookie" : "LKJDLAKSJBFLKASN", + "content" : "Un bon troll velu !" + } + +s -> c + { + "reply" : "ok" | "error", + "error_message" : "blabla" + } + - -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. @@ -174,6 +209,7 @@ c -> s "cookie" : "LKJDLAKSJBFLKASN", "nick" : "Paul", "content" : "Bonjour", + "Troll" : 45, "answer_to" : [ 345, 532, ... ] } @@ -184,7 +220,7 @@ s -> c } -C.6 Ajout d'une correction d'un messages +C.7. Ajout d'une correction d'un messages ---------------------------------------- Le client envoie un correctif sous la forme de texte supplémentaire à appondre au dernier messages. Le message est appondu avec un " +++ " devant, par exemple :