JeuWeb - Crée ton jeu par navigateur
Architecture asynchrone - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Architecture asynchrone (/showthread.php?tid=5038)

Pages : 1 2 3


RE: Architecture asynchrone - niahoo - 06-08-2010

oui mais c'est justement ça dont je cause,
vous utilisez quoi pour récupérer les infos du serveur ? je veux dire comme technique, je me doute bien que c'est fait avec ajax.

Mais quoi ? push ? polling ? long polling ? Qu'avez-vous testé ?


RE: Architecture asynchrone - NicoMSEvent - 06-08-2010

le push est le serveur qui envoie des données... pour ça il te faut ouvrir un socket (java? flash? html5?), c'est très peu utilisé, parce que ça demande souvent un serveur dédié.

le polling est ce qui est en général utilisé, c'est le client qui va demander des infos (c'est comme ça que fonctionne l'ajax), parfois même c'est à interval régulier

le long polling est un serveur comet par exemple (corrigez moi si je me goure), en fait on va demander de l'info sur le serveur, et le serveur met le client en attente (ne termine pas la connexion) tant qu'il n'y a rien a transmettre(ça peut prendre longtemps-> long pooling). Dès qu'il y a quelque chose, le serveur ferme la connexion, le client sait alors qu'il y a quelque chose a aller chercher, et redemande l'info. La contrainte est qu'il faut aussi un serveur dédié, parce qu'en général un mutu te limite à 10 connections simultanées (voir p-e 100, mais rarement plus)-> nombre de visiteurs dans ce cas là très limité (de plus, en général une connexion est automatiquement fermée au bout de quelques secondes)

ce que j'ai testé est uniquement le polling, et je n'ai jusqu'a maintenant pas eu réellement besoin d'autre chose, parce que en général, les jeux web ne demande pas temps-réel (un délais de quelques secondes est acceptable)

plus d'info : http://en.wikipedia.org/wiki/Push_technology

Il y a déjà plein de sujets sur ce forum parlant de ça, une petite recherche avec "comet" comme mot clé répondra a toutes tes autres questions Wink


RE: Architecture asynchrone - niahoo - 06-08-2010

je sais tout ça. je demandais simplement ce que vous vous utilisez et si vous en êtes contents mais je crois que je dois mal m'exprimer. je vais partir sur du polling mais je pense qu'à court terme c'est pas un bon plan.
( concernant les dédiés, je pense que pour un jeu c'est quasi indispensable )


RE: Architecture asynchrone - Anthor - 06-08-2010

Personnellement, j'utilise APE, pour le push.
Ces performances et sa montée en charge sont parfaites pour ce type de connexion.


RE: Architecture asynchrone - niahoo - 06-08-2010

J'ai vu qu'ils utilisaient un iframe, et comme c'est une balise en dehors des standards, j'ai peur qu'elle ne soit plus prise en compte par tous les navigateurs du futur.

Sinon je l'aurais installé direct, ça à l'air vraiment sympa.


RE: Architecture asynchrone - Anthor - 06-08-2010

(06-08-2010, 11:53 AM)niahoo a écrit : J'ai vu qu'ils utilisaient un iframe, et comme c'est une balise en dehors des standards, j'ai peur qu'elle ne soit plus prise en compte par tous les navigateurs du futur.

Sinon je l'aurais installé direct, ça à l'air vraiment sympa.

On me l'avais jamais faite celle la ! Big Grin

D'un autre côté le push ne fait pas partie du standard http ?
Peut-être que tu devrais ne pas trop te poser la question et ne pas en faire dans ce cas ?

Sinon je pense qu'a terme si une solution plus propre arrive et qui fonctionne sur a peu près tous les navigateurs, APE sera mis à jour ^^

Par exemple Facebook utilise aussi une iframe pour son push.

Sinon dans ta tête comment tu vois un long polling ? Parce que a part avec l'iframe, j'ai rarement vu d'autres solutions, hormis websocket, mais c'est pas encore assez présent.


RE: Architecture asynchrone - niahoo - 06-08-2010

ben un long polling ça se fait avec une simple requête http.
facebook, quel site de merde, pour moi c'est pas un exemple, à chaque fois que je me connecte je suis consterné par leur ergonomie bidon.

Citation :D'un autre côté le push ne fait pas partie du standard http ?
non rien à voir mais il ne t'oblige pas à ne pas le respecter, dans l'idée.


RE: Architecture asynchrone - Sephi-Chan - 06-08-2010

WebSocket ne repose pas sur le long polling, c'est tout l'intérêt. Big Grin
Pour le long polling, on peut utiliser des iframe ou des requêtes Ajax.
Et tu n'as rien à craindre quant au support de la balise iframe, elle fait partie des spécifications de XHTML 1.


Sephi-Chan


RE: Architecture asynchrone - Anthor - 09-08-2010

(06-08-2010, 12:18 PM)niahoo a écrit : ben un long polling ça se fait avec une simple requête http.
facebook, quel site de merde, pour moi c'est pas un exemple, à chaque fois que je me connecte je suis consterné par leur ergonomie bidon.

Citation :D'un autre côté le push ne fait pas partie du standard http ?
non rien à voir mais il ne t'oblige pas à ne pas le respecter, dans l'idée.

Ben après c'est toi qui nous pose la question, on te donne APE, si tu n'en veux pas ou que tu penses pouvoir faire mieux qu'un composant libre, n'hésite pas, mais je ne pense pas que nous poserais la question ^^

Citation :WebSocket ne repose pas sur le long polling, c'est tout l'intérêt. 1

Je me suis mal exprimé, je voulais parler des différentes solutions pour faire du push (long polling, JSONP, SSE, XHR_Streaming, Web socket) et qu'elles ont a peu prêt toutes des spécificités plus ennuyantes et moins compatibles que l'iframe du long polling.


RE: Architecture asynchrone - niahoo - 09-08-2010

houlà détends toi, tout va bien..
moi je demandais simplement ce que vous aviez essayé comme solutions et si vous en étiez satisfaits ...

Citation :Sinon dans ta tête comment tu vois un long polling ? Parce que a part avec l'iframe, j'ai rarement vu d'autres solutions,

ben je pense qu'avec une bête requête XHTTPMachin (j'arrive vraiment pas à retenir cet acronyme Smile) c'est possible, non ?