(no commit message)
[euphorik.git] / doc / protocole.txt
1 Euphorik - minichat\r
2 -------------------\r
3 \r
4 A. Introduction\r
5 ---------------\r
6 \r
7 Ce document a pour but de décrire la communication client-serveur du site euphorik.\r
8 \r
9 \r
10 B. Principe\r
11 -----------\r
12 \r
13 Enregistrement:\r
14 \r
15 Authentification:\r
16 \r
17 Rafraichissement:\r
18  * Le client envoie une demande au serveur avec l'id du dernier message (via XMLHttpRequest ou un function de JQuery)\r
19  * Le serveur maintient la connexion bloqué si le client est à jour.\r
20  * Dès qu'un nouveau message arrive, le serveurs débloque la connexion est envoie le ou les messages manquants.\r
21  
22 \r
23 C. Protocole\r
24 ------------\r
25 c : client\r
26 s : server\r
27 \r
28 C.1. Demande de génération d'un nouveau captcha :\r
29 -----------------------------------------------\r
30 Obsolète : les captchas ne sont plus utilisés\r
31 \r
32 c -> s\r
33 <action name="generationCaptcha">\r
34 </action>\r
35 \r
36 s -> c\r
37 <reponse name="generationCaptcha">\r
38    <chemin>img/tmp/b1b1b4e72e6f3d00e477cf37cced5851.jpg</chemin>\r
39    <captchaCrypt>b1b1b4e72e6f3d00e477cf37cced5851</captchaCrypt>\r
40 </action>\r
41 \r
42 C.2. Login :\r
43 ------------\r
44 le message du client est posté par la méthode POST et se nomme 'action'.\r
45 \r
46 c -> s\r
47 (nouveau user) (Obsolète)\r
48  <action name="loginCaptcha">\r
49    <captchaCrypt>b1b1b4e72e6f3d00e477cf37cced5851</captchaCrypt>\r
50    <captchaInput>LKJDLA</captchaInput>\r
51  </action>\r
52  \r
53 ou\r
54 (ne sert pour l'instant qu'a mettre à jour user.date_derniere_connexion)\r
55 (si le login est faut, une temporisation est effectuée)\r
56  <action name="login">\r
57    <cookie>LKJDLAKSJBFLKASN</cookie>\r
58  </action>
59  
60 ou 
61  <action name="login">
62    <login>Paul</login>
63    <password>IJKJDHHSAD9081238</password>
64  </action>
65  
66 ou (login et password peuvent être omis)
67  <action name="register">
68    <login>Paul</login>
69    <password>IJKJDHHSAD9081238</password>
70  </action>\r
71    \r
72 s -> c
73 (<information> et <pseudo> pas obligatoire)\r
74  <reponse name="login">\r
75    <statut>enregistre|identifie|erreur</statut>\r
76    <cookie>LKJDLAKSJBFLKASN</cookie>\r
77    <id>7ZS</id> <!-- l'id est en base 36 -->\r
78    <pseudo>Paul</pseudo>
79    <login>paul49</login>
80    <email>paul@pierre.com</email>
81    <css>css/lite.css</css>\r
82    <information>blabla</information>\r
83  </reponse>\r
84  \r
85  \r
86 C.3. Logout :\r
87 -------------\r
88 c -> s\r
89  <action name="logout">\r
90    <cookie>LKJDLAKSJBFLKASN</cookie> \r
91  </action>
92  
93 C.4. Profile :
94 --------------
95 modification du profile, seul 'cookie' est obligatoire
96
97 c -> s
98  <action name="profile">
99    <cookie>LKJDLAKSJBFLKASN</cookie>
100    <login>paul49</login>
101    <password>IJKJDHHSAD9081238</password>
102    <pseudo>Paul</pseudo>
103    <email>paul@pierre.com</email>
104    <css>css/dark.css</css>
105  </action>
106  
107 s -> c
108  <reponse name="profile">
109    <statut>ok|pas ok</statut>
110    <information>balbla></information>
111  </reponse>\r
112 \r
113 \r
114 C.5. Refresh messages :\r
115 -----------------------\r
116 \r
117 Si dernierMessageId est absent alors le client ne possède pas de message.\r
118 Page peut être omis, il a alors la valeur 1 (première page)\r
119 dernierMessageId est en base 36 (l'histoire de rigoler un peu)
120 \r
121 c -> s\r
122  <action name="refreshMessages">
123   <cookie>LKJDLAKSJBFLKASN</cookie>\r
124   <dernierMessageId>6ZR</dernierMessageId>\r
125   <nombreMessage>10</nombreMessage>\r
126   <page>1</page>\r
127  </action>\r
128  \r
129 s -> c\r
130  <reponse name="refreshMessages">\r
131   <nbPage>4</nbPage> <!-- le nombre de page total -->
132   <message id="1F5">\r
133    <date>Hier 17:26:54</date>
134    <systeme></system> <!-- est-ce un message système ? -->\r
135    <proprietaire></proprietaire> <!-- est-ce que le message appartient à l'utilisateur courant ? "true" ou "false" -->\r
136    <repondu></repondu>  <!-- est-ce que l'utilisateur courant a répondu à ce message ? "true" ou "false" -->\r
137    <reponse></reponse> <!-- est-ce que c'est une réponse à un message de l'utilisateur courant ? "true" ou "false" -->\r
138    <pseudo>Paul</pseudo>
139    <login>paul_22</login>\r
140    <contenu>Salut</contenu>\r
141    <repondA>
142       <!-- id est l'id d'un message -->\r
143       <id id="DE2" pseudo="Pierre" login="pierre_45"> 
144       <!-- [..] -->\r
145    </repondA>\r
146   </message>\r
147   <!-- [..] -->\r
148  </reponse>\r
149 \r
150 ou\r
151 \r
152  <reponse name="refreshMessages">\r
153   <erreur>raison</erreur>\r
154  </reponse>\r
155 \r
156 C.6. Envoie message :\r
157 ---------------------\r
158 \r
159 Un client envoie un message, le message peut répondre à un certain nombre d'autres messages.\r
160 <reponses> n'est pas obligatoire.\r
161 c -> s\r
162  <action name="message">\r
163   <cookie>LKJDLAKSJBFLKASN</cookie>\r
164   <pseudo>Paul</pseudo> <!-- il est possible que la personne change de pseudo -->\r
165   <contenu>Bonjour</contenu>\r
166   <reponses>\r
167    <reponse id="RT5" />\r
168    <reponse id="39K" />\r
169    <!-- [..] -->\r
170   </reponses>\r
171  </action>\r
172  \r
173 s -> c\r
174  <reponse name="message">\r
175    <statut>ok|pas ok</statut>\r
176  </reponse>\r
177  \r