JeuWeb - Crée ton jeu par navigateur
WebSockets et Html5 - 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 : WebSockets et Html5 (/showthread.php?tid=6210)

Pages : 1 2 3 4 5 6


WebSockets et Html5 - Aleskweb - 16-06-2012

Bonsoir, (ou bonjour)

Je m’intéresse actuellement aux Websockets que l'on peu a présent utiliser depuis java script. Le concept est plutôt sympathique, puisqu'il permet de faire des applications multi-utilisateur en temps reel en JS.

L'utilisation de ces websockets coté JS est plutot facile mais coté serveur, c'est autre chose, le protocole de connexion et est difficile a saisir (du moins pour moi).
J'ai essayé plusieurs tutos tel que (http://sii-rennes.developpez.com/articles/un-chat-en-html5-avec-les-websockets/), aucun n'a fonctionné sur mon vps. (M'enfin j'ai fait que quelques heures de recherche c'est pas fini).

De plus, 90% des sujets qui parlent de ces web sockets datent de 2010.

Enfin bref, tout cela pour demander votre avis sur le sujet (Les web sockets ont-ils de l'avenir, existe-il des alternatives) et recueillir quelques informations par la même occasion.

Merci, Cordialement
Aleskweb



RE: WebSockets et Html5 - Sephi-Chan - 17-06-2012

Le plus simple est de pas utiliser directement Websocket, qui est de toute façon trop incompatible pour être très fiable (mais selon les besoins, ça peut ne pas être problématique). Il existe plusieurs solutions qui embarquent un serveur et un ou plusieurs clients.

Pourquoi plusieurs clients ? Parce que quand on utilise un serveur de push, les navigateurs ne sont pas les seuls clients, l'application Web en est un aussi.

De nombreux serveurs de push existent. Certains sont basés sur Node, d'autres non. Certains utilisent une technologie tierce en guise de message broker, d'autres non. C'est notamment le cas de ma solution préférée, Juggernaut qui utilise le mécanisme de publish/subscribe de Redis. Du coup, tous les langages sont compatibles avec ce serveur dès lors qu'ils disposent d'un client Redis (même si on utilise souvent un wrapper, la gem Juggernaut pour Ruby, la classe Juggernaut for PHP pour PHP, etc.).

D'un point de vue fonctionnel, ça se met en place en quelques étapes. On installe Node et NPM, on installe Redis, on lance le serveur Juggernaut, on ajoute la lib Javascript dans le navigateur.

Après, au niveau du développement c'est assez simple, il suffit de suivre la documentation du client qu'on utilise (aussi bien côté navigateur que côté application Web).




RE: WebSockets et Html5 - Aleskweb - 17-06-2012

Oui, la compatibilité n'est pas encore optimale. Firefox et Chrome ont a l'air de fonctionner a peu prés mais Opera, nada.

Les serveurs de push n'ont-ils pas des inconvénients par rapport aux Websockets? Notamment pour le ciblage d'envoi des données ?
Et le script coté serveur est-il personnalisable? (Apparemment oui).
Du coup, par exemple, avec un serveur de push il est impossible de faire une fonction coté serveur pour les requêtes sql. (Je m'explique mal mais en gros l'utilisateur envoie au serveur un "sql/type_de_requête/les_paramètres_de_la_requete" puis le serveur lui renvoie les données a lui seul). Enfin bon, un load d'un script php depuis Js peut très bien fonctionner pour cela.

Ah ben on trouve tout sur ce forum Big Grin
http://www.jeuweb.org/showthread.php?tid=8036
J'vais me documenter et tester un peu tout ça sur mon vps
Merci


RE: WebSockets et Html5 - Akira777 - 17-06-2012

Tiens en passant, un p'tit article sur le wiki de jeuweb sur Juggernaut aurait été sympa !

J'm'y serais bien collé, mais je suis pas assez calé sur la technologie pour en faire un tuto efficace.


RE: WebSockets et Html5 - Aleskweb - 17-06-2012

Pour ma part je pourrais faire un tuto sur la création d'un serveur socket multi-utilisateurs en Java mais je doutes que ça intéresse beaucoup de personnes, et celui de devellopez.com est très complet.
Mais c'est vrai qu'un wiki sur Juggeranaut serait pas mal. D'autant plus que les recherches sur le web donnent sur un MMO x)


RE: WebSockets et Html5 - Astarion - 17-06-2012

Pour ma part j'utilise Socket.io avec un serveur Node.js qui pallient au manque de compatibilité des Websockets et qui est parfaitement personnalisable !
Tu peux trouver un bon tuto ici : http://www.atinux.fr/2011/08/28/tutoriel-socket-io-debutant/

C'est assez simple à mettre en place et j'en suis pleinement satisfait !


RE: WebSockets et Html5 - Aleskweb - 17-06-2012

Merci.

Ca m'a l'air plutot pas mal.
Quelqu’un aurais un comparatif au niveau de la ram demandée pour les deux serveurs (Node.js et Juggernaut)?


RE: WebSockets et Html5 - Akira777 - 17-06-2012

Merci du partage Astarion !
Bon ca va, de mon côté, pas de problème pour faire un tchat avec ces technologies...

Dernièrement j'm'étais mis à faire un système de lecture vidéo HTML5 (API File et FileReader) et Socket.io, qui permet de sélectionner pendant la visualisation deux instants T sur cette vidéo puis de renvoyer à l'utilisateur l'extrait vidéo convertit dans le format de son choix ou uniquement la bande son, le tout zippé. Avec barre de progression de la conversion, du zippage, ... J'en ai chié (n'ayons pas peur des mots). J'étais tout le temps collé aux docs u___u

Aleskweb : Surtout que t'as ça aussi maintenant : http://nodephp.org/ (pas vraiment testé pour ma part)


RE: WebSockets et Html5 - Astarion - 17-06-2012

(17-06-2012, 11:23 AM)Aleskweb a écrit : Merci.

Ca m'a l'air plutot pas mal.
Quelqu’un aurais un comparatif au niveau de la ram demandée pour les deux serveurs (Node.js et Juggernaut)?

J'ai pas de valeur tout de suite, (jsuis en déplacement et mon donc pas mon serveur sous la main) mais pour node.js c'est relativement ridicule se que ça nécessite ...
En terme de performance, j'ai cru lire qu'il n'était pas utopique de monter un serveur de chat avec socket.io qui peut accueillir 10 000 personnes ... Ca doit dépendre du serveur, mais déjà coté techno c'est quelques choses de stable et performant !

Jsuis pas très documenté sur Juggernaut, mais à priori ça utilise aussi un serveur node.js ?
(17-06-2012, 11:26 AM)Akira777 a écrit : Aleskweb : Surtout que t'as ça aussi maintenant : http://nodephp.org/ (pas vraiment testé pour ma part)

Intéressant !
Attention à la structure du code par contre et ne pas confondre le code métier (coeur du jeu) et le serveur de push...

Avec node.js et Socket.io, on à une structure vraiment claire avec le serveur node en simple serveur d'écoute et de push




RE: WebSockets et Html5 - Aleskweb - 17-06-2012

J'pense que je vais plutôt partir sur node.js et Socket.io. Comme Astarion l'a dit c'est très facile a comprendre et donc plus facilement utilisable. (En plus grande compatibilité)

De plus le tuto est vraiment très très bien détaillé.