A. Introduction\r
---------------\r
\r
-Le minichat utilise AJAX. Tous les messages sont au format XML\r
-Eventuellement utiliser comet comme décrit ici\r
- : http://www.zeitoun.net/index.php?2007/06/22/46-how-to-implement-comet-with-php\r
+Ce document a pour but de décrire la communication client-serveur du site euphorik.\r
\r
\r
-Structure :\r
------------\r
-\r
-Les objets globaux :\r
- - Messages (liste des messages actuellement affichés, permet de recupérer les nouveaux messages)\r
- - Connexion (Information sur la connexion, information sur le user actuel)\r
- \r
-\r
B. Principe\r
-----------\r
-Termes : serveur, client, utilisateur\r
\r
- 1 Chargement de la page html.\r
- 2 Le client écoute les derniers messages au serveur (asynchrone).\r
- 3 Le client est initialement déconnecté, il regarde si un cookie existe sur la machine cliente :\r
- a Si oui : il tente un login avec le cookie, si ok alors le client est connecté sinon il reste dans l'état déconnecté.\r
- b Si non : il demande au serveur la génération d'un captcha et l'affiche. \r
- 4 L'utilisateur peut alors envoyer un message. Il doit saisir le captcha s'il l'état et déconnecté.\r
- a Si le captcha a été saisie le client envoie une requête de login\r
- 5 Le message est posté\r
+Enregistrement:\r
\r
+Authentification:\r
\r
-Principe concernant le rafraichissement:\r
- * Le client envoie une demande au serveur avec l'id du dernier message (via XMLHttpRequest ou un méthode de JQuery)\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 que le serveur n'est plus à jours, il envoie les messages manquants.\r
- \r
-Problème :\r
- * Comment faire de l'attente passive sur le serveur en écoutant l'arrivée d'un nouveau message au niveau de la bd\r
- -> en utilisant le "event handling" de mnesia : http://www.erlang.org//doc/apps/mnesia/part_frame.html\r
- chapitre 5.7 et 5.7.2\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
\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
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
+(nouveau user) (Obsolète)\r
<action name="loginCaptcha">\r
<captchaCrypt>b1b1b4e72e6f3d00e477cf37cced5851</captchaCrypt>\r
<captchaInput>LKJDLA</captchaInput>\r
<password>IJKJDHHSAD9081238</password>
</action>
- <action name="login">
- <login>Paul</login>
- <password>IJKJDHHSAD9081238</password>
- </action>
-
ou (login et password peuvent être omis)
<action name="register">
<login>Paul</login>