JeuWeb - Crée ton jeu par navigateur
Push : Réception de donnée - 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 : Push : Réception de donnée (/showthread.php?tid=5976)

Pages : 1 2 3


RE: Push : Réception de donnée - Zack - 14-02-2012

Ah bah y'a eu de l'action hier ^^.

Mis à part le fait que ce soit sécurisé ou non, ce qui me dérange c'est le fait d'enregistrer chaque action d'un joueur. J'enregistre déjà en base la nouvelle position x/y du joueur lorsqu'il se déplace (Ca écrase l'ancienne, c'est qu'un champ dans une table), il faudrait donc que j'envoi une 2ème requête pour l'historique aussi. Ca risque de faire lourd ?

Est ce vraiment nécessaire d'enregistrer chaque mouvement de déplacement X/Y et d'action, en sachant qu'au final lors de l'actualisation, il arrivera tout de même à la dernière position que j'aurai enregistré dans ma première requête.

Le problème aussi, c'est que si je ne suis pas sur de la bonne réception des données, il faudra obligatoirement actualisé les positions des joueurs au moins toutes les 3 secondes (Voir 1), car sinon ça poserait un énorme problème quand un joueur attaque un autre puisqu'il pourrait y avoir un éventuel soucis de position du joueur qui n'est pas la bonne, et donc fausser les attaques. Même si je fais une vérif coté serveur, c'est super chiant pour le joueur de voir que son attaque ne marche pas alors que pour lui il a l'air à bonne distance du joueur. Il ne comprendrait pas du coup.

En tout cas, merci pour vos réponses.


RE: Push : Réception de donnée - Sephi-Chan - 14-02-2012

Le but du push est d'éviter cette recherche d'information régulière. Il serait stupide de mettre en place de telles solutions. Smile

Je te conseille d'utiliser PubNub, ils utilisent le XHR Long Polling, une technologie plus ancienne que Web Socket mais qui a l'avantage d'être plus compatible et plus bullet-proof et éprouvé. En plus, les 5 premiers millions de messages de chaque mois sont offerts.

Quand un personnage se déplace sur la carte, son navigateur envoie une requête Ajax au serveur en indiquant la destination. Le serveur vérifie si ce déplacement est possible, l'effectue si oui puis envoie un push à tous les joueurs situés à proximité du personnage (pour ça, soit tu as un système de zones, sois tu cherches les personnages situés à X cases).



RE: Push : Réception de donnée - Zack - 14-02-2012

Oui, je comptais me diriger vers pusher ou pubnub, un peu déçu de Beaconpush.

Mais d'après toi, le joueur reçoit dans tous les cas, les données ? Il n'y a pas de perte possible ?

Et si on part sur l’éventualité d'une mauvaise réception de données et donc d'un possible faussement des emplacements d'un personnage, comment ferais-tu pour remettre comme il faut chaque personnage à leur place sur la carte ?
=> Chaque joueur renvoi toutes les X secondes leur position même s'ils n'ont pas bougé ? Ceci afin d'être sur que chaque joueur à la bonne position.


RE: Push : Réception de donnée - Sephi-Chan - 14-02-2012

Ce n'est pas une technologie qui garantie (au sens strict du terme) l'arrivée des messages.
Malgré une utilisation fréquente du push, je n'ai pas eu de mauvaises surprises et je conseille donc de ne rien faire pour traiter ce non-problème.



RE: Push : Réception de donnée - Zack - 14-02-2012

Ok, merci des réponses !


RE: Push : Réception de donnée - Anthor - 19-02-2012

La version Cloud de BeaconPush ferme ses portes....


RE: Push : Réception de donnée - Sephi-Chan - 19-02-2012

Ça m'a choqué quand j'ai lu leur mail ! Ça sonnait comme le désespoir !
Du coup, encore une raison de se tourner vers le service PubNub ou d'installer sur sa machine un serveur de push comme Juggernaut, Faye, etc.



RE: Push : Réception de donnée - mano72 - 06-03-2012



Je rejoins cette discussion forte intéressante, qui m'amène à me poser des questions au sujet de PubNub (ou autre service de Push) :

1- Je suppose qu'il n'y a rien à paramétrer du coté de son serveur pour utiliser ce service ?
(C'est en fait l'argument principal qui me ferait me tourner vers ce type de service en ligne, ne pas gérer toute la partie admin serveur car c'est franchement pas mon truc)

2- Peut-t-on tester le service sur une appli en local avant de le tester sur un serveur web distant ?

3-
(14-02-2012, 12:06 PM)Sephi-Chan a écrit : En plus, les 5 premiers millions de messages de chaque mois sont offerts.

Le décompte se fait dès qu'on utilise le service en dév, ou bien qu'à partir du moment notre jeu est en prod sur son url finale (ce serait trop beau !) ?. Car j'imagine qu'à force de faire des tests en dév les 5 millions peuvent vite s'écouler ... quoi que ... je n'ai aucune idée de ce que cela représente en fait, n'ayant encore jamais utilisé de service de ce genre.

Sephi-Chan, peux tu me donner un ordre de grandeur si ce n'est très approximatif, par ta propre expérience ? combien de messages prévoir en fonction du nombre de joueurs, de connexion, d'intéractivités, etc...


RE: Push : Réception de donnée - Maks - 06-03-2012

Citation :Je te conseille d'utiliser PubNub, ils utilisent le XHR Long Polling, une technologie plus ancienne que Web Socket mais qui a l'avantage d'être plus compatible et plus bullet-proof et éprouvé. En plus, les 5 premiers millions de messages de chaque mois sont offerts.

Plus compatible mais moins robuste/rapide et plus gourmande que les Websockets, en tout cas avec Socket.IO Smile


RE: Push : Réception de donnée - Sephi-Chan - 06-03-2012

(06-03-2012, 07:18 PM)mano72 a écrit : Je rejoins cette discussion forte intéressante, qui m'amène à me poser des questions au sujet de PubNub (ou autre service de Push) :

1- Je suppose qu'il n'y a rien à paramétrer du coté de son serveur pour utiliser ce service ?
(C'est en fait l'argument principal qui me ferait me tourner vers ce type de service en ligne, ne pas gérer toute la partie admin serveur car c'est franchement pas mon truc)

2- Peut-t-on tester le service sur une appli en local avant de le tester sur un serveur web distant ?

3-
(14-02-2012, 12:06 PM)Sephi-Chan a écrit : En plus, les 5 premiers millions de messages de chaque mois sont offerts.

Le décompte se fait dès qu'on utilise le service en dév, ou bien qu'à partir du moment notre jeu est en prod sur son url finale (ce serait trop beau !) ?. Car j'imagine qu'à force de faire des tests en dév les 5 millions peuvent vite s'écouler ... quoi que ... je n'ai aucune idée de ce que cela représente en fait, n'ayant encore jamais utilisé de service de ce genre.

Sephi-Chan, peux tu me donner un ordre de grandeur si ce n'est très approximatif, par ta propre expérience ? combien de messages prévoir en fonction du nombre de joueurs, de connexion, d'intéractivités, etc...

Ça commence dès que tu développes. 5 millions c'est vraiment conséquent, même quand tu testes (puisque généralement, tu testes avec 2 acteurs sur le site, donc à chaque push, tu consommes 3 messages (1 pour envoyer la demande de push à Pubnub, puis 1 pour chaque envoi du message à un navigateur client). Avant c'était 5 000 messages par jour et j'étais très loin de les atteindre lors de mes essais.

A toi de faire le calcul. Si tu fais un chat et que tu as 100 personnes connectées (c'est déjà conséquent), chaque message envoyé va consommer 101 messages. Ça fait presque 50 000 messages envoyés dans le mois. Le jour où tu atteins de tels besoins, ton jeu devrait être capable de financer la formule à $130/mois (environ 100€) qui autorise 30 millions de messages. :p


(06-03-2012, 07:58 PM)Maks a écrit :
Citation :Je te conseille d'utiliser PubNub, ils utilisent le XHR Long Polling, une technologie plus ancienne que Web Socket mais qui a l'avantage d'être plus compatible et plus bullet-proof et éprouvé. En plus, les 5 premiers millions de messages de chaque mois sont offerts.

Plus compatible mais moins robuste/rapide et plus gourmande que les Websockets, en tout cas avec Socket.IO Smile

C'est vrai, ça fait partie du deal quand tu utilises un service tiers. Et d'ailleurs, si tu tu héberges ton application via Amazon EC2, les requêtes vers Pubnub seront extrêmement rapides. Et puis la gourmandise importe peu quand tu utilises un service tiers. Wink

Dans l'absolu, je préfère effectivement utiliser mon propre serveur de push, mais tout le monde ne sait pas ou ne se donne pas les moyens de le faire.