X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Fcomet.js;h=9b4d0ee8704a30db08d29f1c09d0e98c44ab449a;hp=5d848d69e614e0063f3d064bec475e20584d051e;hb=ed281cb4331777625994d23a6e424fb7c5b5d2c9;hpb=d1dff528ecf8ace680f8ba92d11b09e84fd6ff2f diff --git a/js/comet.js b/js/comet.js index 5d848d6..9b4d0ee 100644 --- a/js/comet.js +++ b/js/comet.js @@ -19,30 +19,30 @@ /*jslint laxbreak:true */ /** - * Permet de gérer les événements (push serveur). - * Principe de fonctionnement : - * - La page courante créer un objet euphorik.Comet en indiquant le nom de la page et la version du protocole - * - La page courante attend un événement en appelant 'waitEvent' et en donnant deux fonctions : - * - 'funSend' une fonction qui renvoie les données à envoyer avant l'attente, par exemple {"dernierMess" : 23} - * "header" et "page" seront ajoutés aux données - * - 'funsReceive' un ensemble de fonctions à appeler en fonction du "reply" du serveur - * - * l'information envoyée est sous la forme : - * { - * "header" : {"action" : "wait_event", "version" : }, - * "page" : - * [..] - * } - * l'information reçue est sous la forme : - * { - * "reply" : - * [..] - * } - * et sont de type chaine - * - * @page [string] la page courante pour laquelle on écoute des événements (un string) - * @util [int] la version - */ + * Permet de gérer les événements (push serveur). + * Principe de fonctionnement : + * - La page courante créer un objet euphorik.Comet en indiquant le nom de la page et la version du protocole + * - La page courante attend un événement en appelant 'waitEvent' et en donnant deux fonctions : + * - 'funSend' une fonction qui renvoie les données à envoyer avant l'attente, par exemple {"dernierMess" : 23} + * "header" et "page" seront ajoutés aux données + * - 'funsReceive' un ensemble de fonctions à appeler en fonction du "reply" du serveur + * + * l'information envoyée est sous la forme : + * { + * "header" : {"action" : "wait_event", "version" : }, + * "page" : + * [..] + * } + * l'information reçue est sous la forme : + * { + * "reply" : + * [..] + * } + * et sont de type chaine + * + * @page [string] la page courante pour laquelle on écoute des événements (un string) + * @util [int] la version + */ Comet = function(page, version) { this.page = page; this.version = version; @@ -96,11 +96,11 @@ Comet.prototype.waitEvent = function(funSend, funsReceive) { dataType: "json", // TODO : doit disparaitre timeout: 180000, // timeout de 3min. Gros HACK pas beau. FIXME problème décrit ici : http://groups.google.com/group/jquery-en/browse_thread/thread/8724e64af3333a76 - data: { action : JSON.stringify(dataToSend) + data: { action : JSON.stringify(dataToSend) }, success: - function(data) { + function(data) { funsReceive[data.reply](data); - + // rappel de la fonction dans 100 ms setTimeout(function(){ thisComet.waitEvent2(funSend, funsReceive); }, 100); },