-Euphorik - minichat - Protocole v2
-----------------------------------
-
-A. Introduction
----------------
-
-Ce document a pour but de décrire la communication client-serveur du site euphorik.
-Ce document remplace 'protocole.txt' qui était la première version du protocol.
-
-B. Principe
------------
-
-Enregistrement:
-
-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é si le client est à jour.
- * Dès qu'un nouveau message arrive, le serveurs débloque la connexion est envoie le ou les messages manquants.
-
-
-C. Protocole
-------------
-c : client
-s : server
-Chaque message est numéroté #<num>.
-Les messages client vers serveur sont envoyé par HTTP-POST
-
-
-C.1. Login
-----------
-
-c -> s
- <action name="login">
- <login>Paul</login>
- <password>IJKJDHHSAD9081238</password>
- </action>
-
-ou
-<action name="login">
- <cookie>LKJDLAKSJBFLKASN</cookie>
-</action>
-
-ou
- <action name="register">
- <login>Paul</login>
- <password>IJKJDHHSAD9081238</password>
- </action>
-
-s -> c
-(<information> et <pseudo> pas obligatoire)
- <reponse name="login">
- <statut>enregistre|identifie|erreur</statut>
- <cookie>LKJDLAKSJBFLKASN</cookie>
- <id>7ZS</id> <!-- l'id est en base 36 -->
- <pseudo>Paul</pseudo>
- <login>paul49</login>
- <email>paul@pierre.com</email>
- <css>css/lite.css</css>
- <pagePrincipale>1</pagePrincipale> <!-- facultatif -->
- <!-- L'ordre des conversations est le même que lors de la sauvegarde du profile -->
- <conversation>
- <racine>4F</racine>
- <page>1</page>
- </conversation>
- <!-- [..] -->
- <information>blabla</information>
- </reponse>
-
-
-C.2. Logout
------------
-c -> s
- <action name="logout">
- <cookie>LKJDLAKSJBFLKASN</cookie>
- </action>
-
-C.3. Profile
-------------
-modification du profile, seul 'cookie' est obligatoire
-
-c -> s
- <action name="profile">
- <cookie>LKJDLAKSJBFLKASN</cookie>
- <login>paul49</login>
- <password>IJKJDHHSAD9081238</password>
- <pseudo>Paul</pseudo>
- <email>paul@pierre.com</email>
- <css>css/dark.css</css>
- <pagePrincipale>1</pagePrincipale> <!-- facultatif -->
- <conversation>
- <racine>4F</racine>
- <page>1</page>
- </conversation>
- <!-- [..] -->
- </action>
-
-s -> c
- <reponse name="profile">
- <statut>ok|pas ok</statut>
- <information>balbla</information>
- </reponse>
-
-
-C.4. Refresh messages
----------------------
-
-Si dernierMessageId est absent alors le client ne possède pas de message.
-Page peut être omis, il a alors la valeur 1 (première page).
-dernierMessageId est en base 36 (l'histoire de rigoler un peu).
-Les conversations données sont définies dans le profile.
-
-c -> s
- <action name="refreshMessages">
- <cookie>LKJDLAKSJBFLKASN</cookie>
- <nombreMessage>10</nombreMessage>
- <dernierMessageId>6ZR</dernierMessageId>
- </action>
-
-s -> c
- <reponse name="refreshMessages">
- <conversation> <!-- les conversations sont ordrées, la première est la conversation principale -->
- <autresPages>true</autresPages> <!-- possède une ou plusieurs autres pages ? "true" ou "false" -->
- <message id="1F5">
- <date>Hier 17:26:54</date> <!-- date du message (format non formel) -->
- <systeme></system> <!-- est-ce un message système ? "true" ou "false" -->
- <proprietaire></proprietaire> <!-- est-ce que le message appartient à l'utilisateur courant ? "true" ou "false" -->
- <repondu></repondu> <!-- est-ce que l'utilisateur courant a répondu à ce message ? "true" ou "false" -->
- <reponse></reponse> <!-- est-ce que c'est une réponse à un message de l'utilisateur courant ? "true" ou "false" -->
- <pseudo>Paul</pseudo>
- <login>paul_22</login>
- <contenu>Salut</contenu>
- <repondA>
- <!-- id est l'id d'un message -->
- <id id="DE2" pseudo="Pierre" login="pierre_45">
- <!-- [..] -->
- </repondA>
- </message>
- <!-- [..] -->
- <conversation>
- <!-- [..] -->
- </reponse>
-ou
- <!-- modification d'un message -->
- <reponse name="modMessage">
- <message id="1F5">\r
- <contenu>Salut ++ poulpe</contenu> <!-- contient le message complet -->\r
- </message>
- </reponse>
-ou
- <reponse name="refreshMessages">
- <erreur>raison</erreur>
- </reponse>
-
-
-C.5. Envoie message
--------------------
-
-Le client envoie un message, le message peut répondre à un certain nombre d'autres messages.
-<reponses> n'est pas obligatoire.\r
-
-c -> s
- <action name="message">
- <cookie>LKJDLAKSJBFLKASN</cookie>
- <pseudo>Paul</pseudo> <!-- il est possible que la personne change de pseudo -->
- <contenu>Bonjour</contenu>
- <reponses>
- <reponse id="RT5" />
- <reponse id="39K" />
- <!-- [..] -->
- </reponses>
- </action>
-
-s -> c
- <reponse name="message">
- <statut>ok|pas ok</statut>
- </reponse>
- \r
- \r
-C.6 Ajout d'une correction d'un messages\r
-----------------------------------------\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
-> Gnome c'est mieux que KDE +++ Euh non ok, c'est faux\r
-\r
-c -> s\r
- <action name="correction">\r
- <cookie>LKJDLAKSJBFLKASN</cookie>\r
- <correctif>Euh non ok, c'est faux</correctif>\r
- </action>\r
- \r
-s -> c\r
- <reponse name="correction">\r
- <statut>ok|pas ok</statut> <!-- pas ok en général lorsque l'utilisateur n'a pas encore posté de message -->\r
- </reponse>\r
-\r
-\r
-
-