/**
* classe permettant de gérer les événements (push serveur).
+ * l'information envoyé est sous la forme :
+ * {
+ * "action" : "wait_event"
+ * "page" : <page>
+ * [..]
+ * }
+ * l'information reçu est sous la forme :
+ * {
+ * "reply" : <reply>
+ * }
* @page la page
*/
function PageEvent(page, util)
/**
* Attend un événement lié à la page.
* @funSend une fonction renvoyant les données json à envoyer
- * @funReceive une fonction qui accepte un paramètre correspondant au données reçues
+ * @funsReceive est un objet comprenant les fonctions à appeler en fonction du "reply"
+ * les fonctions acceptent un paramètre correspondant au données reçues.
+ * exemple : {"new_message" : function(data){ ... }}
*/
-PageEvent.prototype.waitEvent = function(funSend, funReceive)
+PageEvent.prototype.waitEvent = function(funSend, funsReceive)
{
this.stopAttenteCourante()
{
;; dumpObj(data)
- funReceive(data)
+ funsReceive[data["reply"]](data)
// rappel de la fonction dans 100 ms
- setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funReceive) }, 100)
+ setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funsReceive) }, 100)
},
error:
function(XMLHttpRequest, textStatus, errorThrown)
{
- setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funReceive) }, 1000)
+ ;; console.log("Connexion perdue dans waitEvent")
+ setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funsReceive) }, 1000)
}
})
}
/**
* Si un stopAttenteCourante survient un peu n'importe quand il faut imédiatement arreter de boucler.
*/
-PageEvent.prototype.waitEvent2 = function(funSend, funReceive)
+PageEvent.prototype.waitEvent2 = function(funSend, funsReceive)
{
if (this.stop)
return
- this.waitEvent(funSend, funReceive)
+ this.waitEvent(funSend, funsReceive)
}
///////////////////////////////////////////////////////////////////////////////////////////////////