From b9626798ba8adf3dc9d517e7ecc8cde173389121 Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Wed, 5 Dec 2007 16:12:54 +0000 Subject: [PATCH] =?utf8?q?ADD=20D=C3=A9finition=20d'un=20nouveau=20protoco?= =?utf8?q?le=20(version2)=20MOD=20maj=20du=20todo?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/TODO.txt | 8 ++- doc/protocole.txt | 44 +++---------- doc/protocole2.txt | 161 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 175 insertions(+), 38 deletions(-) create mode 100644 doc/protocole2.txt diff --git a/doc/TODO.txt b/doc/TODO.txt index b56c3aa..2cf9597 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -67,7 +67,9 @@ * Créer un favicon (joli) * Système de commande / * /nick : changer de pseudo - * /me : "* " + * /me : "* " + * /blam : permet d'envoyer un blame à qqun (uniquement depuis un modo vers un non-modo) + * /+ blabla Pourvoir ajouter du texte (correctif en général) à son dernier message par une commande, par exemple * Ajouter de nouveaux smiles : * "slurp" ("ca fait envie") : http://forum-images.hardware.fr/images/perso/huit.gif * "agreed" : http://forum-images.hardware.fr/icones/smilies/jap.gif @@ -108,11 +110,11 @@ [3] après le login un '?' s'ajoute à l'adresse (opera, firefox) -- Idées -- +* Avoir un thème de discussion affiché en haut des messages * Pouvoir cacher les dates * Pouvoir choisir une couleur pour son pseudo * Gestion de l'historique (calendrier) -* Créer un gamebot pour lancer des jeux. Par exemple un jeu d'énigmes -* Pourvoir ajouter du texte (correctif en général) à son dernier message par une commande, par exemple : /+ blabla +* Créer un gamebot pour lancer des jeux. Par exemple un jeu d'énigmes * smiles personnalisé, on peut en ajouter dans la préférence utilisateur. * tout le monde peut voir les smiles des autres et les utiliser : [nom_user:smile] * Possibilité de formater le texte ; bold, italic, etc.. diff --git a/doc/protocole.txt b/doc/protocole.txt index 2ae4681..7710c87 100755 --- a/doc/protocole.txt +++ b/doc/protocole.txt @@ -4,43 +4,21 @@ Euphorik - minichat A. Introduction --------------- -Le minichat utilise AJAX. Tous les messages sont au format XML -Eventuellement utiliser comet comme décrit ici - : http://www.zeitoun.net/index.php?2007/06/22/46-how-to-implement-comet-with-php +Ce document a pour but de décrire la communication client-serveur du site euphorik. -Structure : ------------ - -Les objets globaux : - - Messages (liste des messages actuellement affichés, permet de recupérer les nouveaux messages) - - Connexion (Information sur la connexion, information sur le user actuel) - - B. Principe ----------- -Termes : serveur, client, utilisateur - 1 Chargement de la page html. - 2 Le client écoute les derniers messages au serveur (asynchrone). - 3 Le client est initialement déconnecté, il regarde si un cookie existe sur la machine cliente : - 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é. - b Si non : il demande au serveur la génération d'un captcha et l'affiche. - 4 L'utilisateur peut alors envoyer un message. Il doit saisir le captcha s'il l'état et déconnecté. - a Si le captcha a été saisie le client envoie une requête de login - 5 Le message est posté +Enregistrement: +Authentification: -Principe concernant le rafraichissement: - * Le client envoie une demande au serveur avec l'id du dernier message (via XMLHttpRequest ou un méthode de JQuery) +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 que le serveur n'est plus à jours, il envoie les messages manquants. - -Problème : - * Comment faire de l'attente passive sur le serveur en écoutant l'arrivée d'un nouveau message au niveau de la bd - -> en utilisant le "event handling" de mnesia : http://www.erlang.org//doc/apps/mnesia/part_frame.html - chapitre 5.7 et 5.7.2 - + * Dès qu'un nouveau message arrive, le serveurs débloque la connexion est envoie le ou les messages manquants. + C. Protocole ------------ @@ -49,6 +27,7 @@ s : server C.1. Demande de génération d'un nouveau captcha : ----------------------------------------------- +Obsolète : les captchas ne sont plus utilisés c -> s @@ -65,7 +44,7 @@ C.2. Login : le message du client est posté par la méthode POST et se nomme 'action'. c -> s -(nouveau user) (obsolète) +(nouveau user) (Obsolète) b1b1b4e72e6f3d00e477cf37cced5851 LKJDLA @@ -84,11 +63,6 @@ ou IJKJDHHSAD9081238 - - Paul - IJKJDHHSAD9081238 - - ou (login et password peuvent être omis) Paul diff --git a/doc/protocole2.txt b/doc/protocole2.txt new file mode 100644 index 0000000..6449cd9 --- /dev/null +++ b/doc/protocole2.txt @@ -0,0 +1,161 @@ +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é #. +Les messages client vers serveur sont envoyé par HTTP-POST + + +C.1. Login +---------- + +c -> s +#1 + + Paul + IJKJDHHSAD9081238 + + +ou +#2 ( et peuvent être omis) + + Paul + IJKJDHHSAD9081238 + + +s -> c +#3 ( et pas obligatoire) + + enregistre|identifie|erreur + LKJDLAKSJBFLKASN + 7ZS + Paul + paul49 + paul@pierre.com + css/lite.css + blabla + + + +C.2. Logout +----------- +c -> s + + LKJDLAKSJBFLKASN + + +C.3. Profile +------------ +modification du profile, seul 'cookie' est obligatoire + +c -> s + + LKJDLAKSJBFLKASN + paul49 + IJKJDHHSAD9081238 + Paul + paul@pierre.com + css/dark.css + + +s -> c + + ok|pas ok + balbla> + + + +C.4. Attente evenement +---------------------- + +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) + +c -> s + + LKJDLAKSJBFLKASN + 6ZR + 10 + 1 + + +s -> c + + 4 + + Hier 17:26:54 + + + + + Paul + paul_22 + Salut + + + + + + + + + +ou + + TODO + + +ou + + raison + + +C.5. Envoie message +------------------- + +Un client envoie un message, le message peut répondre à un certain nombre d'autres messages. + n'est pas obligatoire. +c -> s + + LKJDLAKSJBFLKASN + Paul + Bonjour + + + + + + + +s -> c + + ok|pas ok + + + +C.5. Envoie message +------------------- + -- 2.43.0