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


RE: WebSockets et Html5 - srm - 18-06-2012

De ce que je lis, c'est juste une méthode plus facile à utiliser que l'ajax, mais le principe reste le même, toutes les X secondes le client va demander au serveur si il y a de nouvelles données, donc je suis moyennement convaincu.

Si je me trompe corrigez moi, car j'ai lu l'article rapidement.


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

C'est effectivement très loin d'être équivalent et on se rapproche plus du fonctionne de l'AJAX ici.
L’intérêt du passage par des Websocket (ou abstractions), c'est qu'il y à une connexion persistante et que l'entête HTTP n'est échangée qu'une seule fois ...

Ici, le fonctionnement est peut être un peu plus complet qu'un simple AJAX mais il n'y pas l'idée de connexion persistante !


RE: WebSockets et Html5 - niahoo - 18-06-2012

Pourtant il ne faut pas gérer le polling manuellement, on se contente de déclarer les callbacks. Effectivement peut-être qu'il y a du polling derrière. Je n'ai pas dit que c'était l'équivalent des WS puisque ces derniers permettent de faire une communication à double sens. Les SSE, eux, sont unidirectionnels Serveur->client. Bon l'incompatibilité totale d'iE m'a refroidi de toute façon. Je vais me tourner vers sockjs


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

>Astarion et Sephi : Merci, mais créer une room pour chaque client n'est pas un peu euuuu barbare? Fin si c'est la seule solution je prends Big Grin


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

Pourquoi barbare ? La métaphore des canaux n'est justement que pure terminologie : tu ne crées rien. Tu push juste sur un canal que des clients écoutent. Qu'il y ait zéro, une ou plusieurs clients qui écoutent, ça n'a aucune importance : il n'y a qu'une seule connexion entre un client et le serveur, quel que soit le nombre de canaux écoutés.


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

C'est ce que je me suis dis aussi mais j'ai pas trouvé mieux et ça s'adaptais bien à mon mode de fonctionnement :o
Pour info, tu peux donner des paramètres à un client :

Code :
socket.set('param', param, function(){

     /* callback():*/
});

Et tu récupères le paramètre ainsi :

Code :
socket.get('param', function(err, param) {

    /* callback(); */
});

(18-06-2012, 08:03 PM)Sephi-Chan a écrit : Pourquoi barbare ? La métaphore des canaux n'est justement que pure terminologie : tu ne crées rien. Tu push juste sur un canal que des clients écoutent. Qu'il y ait zéro, une ou plusieurs clients qui écoutent, ça n'a aucune importance : il n'y a qu'une seule connexion entre un client et le serveur, quel que soit le nombre de canaux écoutés.

Pas faux oui, merci !


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

Ah merci Smile

Certes mais j'avais vu qu'il fallait déclarer les différentes rooms avant de les rejoindre coté client a l'aide de socket.join("roomx");

Comme ici par exemple:
http://psitsmike.com/2011/10/node-js-and-socket-io-multiroom-chat-tutorial/


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

Oula non, rien a faire coté Client ! C'est coté serveur que tu inscris ton client à ta room/ton groupe !
Tu peux faire ça dès qu'un client se connecte, tu lui attribue sa propre room et voila Smile


RE: WebSockets et Html5 - Maks - 18-06-2012

De mémoire pour Socket.IO tu peux envoyer à un seul client à partir de son id. Quelque chose comme socket.emit.to(socket.id)... à confirmer.

Sinon tu peux stocker les clients dans un objet :


clients = {}

io.sockets.on 'connection', (socket) ->
clients[socket.id] = socket
# plus tard...
clients[id].emit 'foo', {}



RE: WebSockets et Html5 - niahoo - 18-06-2012

(18-06-2012, 08:43 PM)Astarion a écrit : Oula non, rien a faire coté Client ! C'est coté serveur que tu inscris ton client à ta room/ton groupe !
Tu peux faire ça dès qu'un client se connecte, tu lui attribue sa propre room et voila Smile

Je sais pas trop comment ça fonctionne, mais le clien est bien obligé d'écouter sur la bonne room aussi, non ?