19-05-2011, 11:57 AM
La principale raison qui me pousse à faire mon propre système c'est que j'ai rajouté en surcouche à Dojo un moteur Ajax maison me permettant d'avoir un seul tuyaux pour toutes les requêtes ajax, chaque appel passe par ce moteur qui traite ensuite la (ou les) réponse reçu comme un aiguilleur.
J'ai rajouté une sorte de normalisation des réponses du serveur pour que ce moteur puisse traiter un ou plusieurs bloc réponse indépendamment de ce qui a pu déclencher la requête.
Pour donner un exemple simple :
- l'utilisateur avance dans la carte et monte toujours tout droit
- la commande "avance vers le haut" est envoyé au serveur
- le serveur répond par "voici la nouvelle position sur la carte" si le joueur reste sur la même carte ou la réponse "rafraichi moi tout ca, le joueur il est sur une autre carte"
- le moteur va reconnaître le type de réponse et appeler un "Listener" correspondant (mise à jour de la grille ou rafraîchissement de la page)
Mon aiguilleur me permet aussi de recevoir plusieurs réponse en même temps, par exemple en plus de "voici la nouvelle position sur la carte" il va avoir un "voici les nouveaux évènements sur la carte" et "le joueur a un nouveau message".
Bref, ce système (qui m'a bien casser les c....) je souhaite que mon push passe par là, et pour ça il faut non seulement que les appels javascript passe par la partie mon aiguilleur, mais aussi que côté serveur, les réponses soient formatées correctement.
Bon, si j'ai bien compris ce que tu proposes ca donne :
- le client envoie une requête au serveur
- le serveur dors et garde la requête ouverte tant qu'il n'y a pas de nouveauté
- dés qu'il se passe quelque chose, il envoie le nouvel évènement en réponse à la requête ouverte et ferme la requête
- le client traite la réponse reçue et renvoie une nouvelle requête au serveur
- etc..
C'est ça ?
J'ai rajouté une sorte de normalisation des réponses du serveur pour que ce moteur puisse traiter un ou plusieurs bloc réponse indépendamment de ce qui a pu déclencher la requête.
Pour donner un exemple simple :
- l'utilisateur avance dans la carte et monte toujours tout droit
- la commande "avance vers le haut" est envoyé au serveur
- le serveur répond par "voici la nouvelle position sur la carte" si le joueur reste sur la même carte ou la réponse "rafraichi moi tout ca, le joueur il est sur une autre carte"
- le moteur va reconnaître le type de réponse et appeler un "Listener" correspondant (mise à jour de la grille ou rafraîchissement de la page)
Mon aiguilleur me permet aussi de recevoir plusieurs réponse en même temps, par exemple en plus de "voici la nouvelle position sur la carte" il va avoir un "voici les nouveaux évènements sur la carte" et "le joueur a un nouveau message".
Bref, ce système (qui m'a bien casser les c....) je souhaite que mon push passe par là, et pour ça il faut non seulement que les appels javascript passe par la partie mon aiguilleur, mais aussi que côté serveur, les réponses soient formatées correctement.
Bon, si j'ai bien compris ce que tu proposes ca donne :
- le client envoie une requête au serveur
- le serveur dors et garde la requête ouverte tant qu'il n'y a pas de nouveauté
- dés qu'il se passe quelque chose, il envoie le nouvel évènement en réponse à la requête ouverte et ferme la requête
- le client traite la réponse reçue et renvoie une nouvelle requête au serveur
- etc..
C'est ça ?