+++ /dev/null
-Euphorik - minichat\r
--------------------\r
-\r
-A. Introduction\r
----------------\r
-\r
-Ce document a pour but de décrire la communication client-serveur du site euphorik.\r
-\r
-\r
-B. Principe\r
------------\r
-\r
-Enregistrement:\r
-\r
-Authentification:\r
-\r
-Rafraichissement:\r
- * Le client envoie une demande au serveur avec l'id du dernier message (via XMLHttpRequest ou un function de JQuery)\r
- * Le serveur maintient la connexion bloqué si le client est à jour.\r
- * Dès qu'un nouveau message arrive, le serveurs débloque la connexion est envoie le ou les messages manquants.\r
-
-\r
-C. Protocole\r
-------------\r
-c : client\r
-s : server\r
-\r
-C.1. Demande de génération d'un nouveau captcha :\r
------------------------------------------------\r
-Obsolète : les captchas ne sont plus utilisés\r
-\r
-c -> s\r
-<action name="generationCaptcha">\r
-</action>\r
-\r
-s -> c\r
-<reponse name="generationCaptcha">\r
- <chemin>img/tmp/b1b1b4e72e6f3d00e477cf37cced5851.jpg</chemin>\r
- <captchaCrypt>b1b1b4e72e6f3d00e477cf37cced5851</captchaCrypt>\r
-</action>\r
-\r
-C.2. Login :\r
-------------\r
-le message du client est posté par la méthode POST et se nomme 'action'.\r
-\r
-c -> s\r
-(nouveau user) (Obsolète)\r
- <action name="loginCaptcha">\r
- <captchaCrypt>b1b1b4e72e6f3d00e477cf37cced5851</captchaCrypt>\r
- <captchaInput>LKJDLA</captchaInput>\r
- </action>\r
- \r
-ou\r
-(ne sert pour l'instant qu'a mettre à jour user.date_derniere_connexion)\r
-(si le login est faut, une temporisation est effectuée)\r
- <action name="login">\r
- <cookie>LKJDLAKSJBFLKASN</cookie>\r
- </action>
-
-ou
- <action name="login">
- <login>Paul</login>
- <password>IJKJDHHSAD9081238</password>
- </action>
-
-ou (login et password peuvent être omis)
- <action name="register">
- <login>Paul</login>
- <password>IJKJDHHSAD9081238</password>
- </action>\r
- \r
-s -> c
-(<information> et <pseudo> pas obligatoire)\r
- <reponse name="login">\r
- <statut>enregistre|identifie|erreur</statut>\r
- <cookie>LKJDLAKSJBFLKASN</cookie>\r
- <id>7ZS</id> <!-- l'id est en base 36 -->\r
- <pseudo>Paul</pseudo>
- <login>paul49</login>
- <email>paul@pierre.com</email>
- <css>css/lite.css</css>\r
- <information>blabla</information>\r
- </reponse>\r
- \r
- \r
-C.3. Logout :\r
--------------\r
-c -> s\r
- <action name="logout">\r
- <cookie>LKJDLAKSJBFLKASN</cookie> \r
- </action>
-
-C.4. 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>
- </action>
-
-s -> c
- <reponse name="profile">
- <statut>ok|pas ok</statut>
- <information>balbla></information>
- </reponse>\r
-\r
-\r
-C.5. Refresh messages :\r
------------------------\r
-\r
-Si dernierMessageId est absent alors le client ne possède pas de message.\r
-Page peut être omis, il a alors la valeur 1 (première page)\r
-dernierMessageId est en base 36 (l'histoire de rigoler un peu)
-\r
-c -> s\r
- <action name="refreshMessages">
- <cookie>LKJDLAKSJBFLKASN</cookie>\r
- <dernierMessageId>6ZR</dernierMessageId>\r
- <nombreMessage>10</nombreMessage>\r
- <page>1</page>\r
- </action>\r
- \r
-s -> c\r
- <reponse name="refreshMessages">\r
- <nbPage>4</nbPage> <!-- le nombre de page total -->
- <message id="1F5">\r
- <date>Hier 17:26:54</date>
- <systeme></system> <!-- est-ce un message système ? -->\r
- <proprietaire></proprietaire> <!-- est-ce que le message appartient à l'utilisateur courant ? "true" ou "false" -->\r
- <repondu></repondu> <!-- est-ce que l'utilisateur courant a répondu à ce message ? "true" ou "false" -->\r
- <reponse></reponse> <!-- est-ce que c'est une réponse à un message de l'utilisateur courant ? "true" ou "false" -->\r
- <pseudo>Paul</pseudo>
- <login>paul_22</login>\r
- <contenu>Salut</contenu>\r
- <repondA>
- <!-- id est l'id d'un message -->\r
- <id id="DE2" pseudo="Pierre" login="pierre_45">
- <!-- [..] -->\r
- </repondA>\r
- </message>\r
- <!-- [..] -->\r
- </reponse>\r
-\r
-ou\r
-\r
- <reponse name="refreshMessages">\r
- <erreur>raison</erreur>\r
- </reponse>\r
-\r
-C.6. Envoie message :\r
----------------------\r
-\r
-Un client envoie un message, le message peut répondre à un certain nombre d'autres messages.\r
-<reponses> n'est pas obligatoire.\r
-c -> s\r
- <action name="message">\r
- <cookie>LKJDLAKSJBFLKASN</cookie>\r
- <pseudo>Paul</pseudo> <!-- il est possible que la personne change de pseudo -->\r
- <contenu>Bonjour</contenu>\r
- <reponses>\r
- <reponse id="RT5" />\r
- <reponse id="39K" />\r
- <!-- [..] -->\r
- </reponses>\r
- </action>\r
- \r
-s -> c\r
- <reponse name="message">\r
- <statut>ok|pas ok</statut>\r
- </reponse>\r
- \r