JeuWeb - Crée ton jeu par navigateur
Quelle technologie pour un jeu de carte pseudo temps réel ? - 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 : Quelle technologie pour un jeu de carte pseudo temps réel ? (/showthread.php?tid=4624)

Pages : 1 2


RE: Quelle technologie pour un jeu de carte pseudo temps réel ? - niahoo - 16-03-2014

Ton code PHP fait simplement une requête, envoie le résultat en Json et termine l'exécution. Normalement tu devrais avoir une erreur dans ta console javascript indiquant que la connexion à été terminée.

Du coup, l'objet EventSource essaie de se reconnecter et renvoie la requête. En gros ça revient à faire du long-polling, mais avec les limitations des SSE.

Ton script PHP ne doit pas se terminer, il doit, après avoir envoyé la réponse (via flush()), faire un petit sleep(...) puis recommencer, voir s'il y a du nouveau et si c'est le cas, flusher de nouvelles données.

Pour voir s'il y a du nouveau je dirais que le plus simple est de faire une somme de contrôle de ton tableau d'utilisateurs et de la comparer avec la somme de contrôle de la requête précédente. Si ça a changé, c'est que le résultat de la requête à changé. (Mais il te faut ajouter une clause ORDER BY à ta requête pour en être sûr.)

Pour le sleep il faudra trouver un nombre de secondes adéquat.

Tu avouera que tout ça est un peu lourd. Si tu n'a que 100 joueurs ça restera très rapide. Mais à partir d'un certain nombre de joueurs (qui dépend de la qualité de ton hébergement) ça va commencer à être très lourd. Donc bon, j'espère que tu as compris où est ton erreur actuellement, fais des essais, amuse-toi, mais ensuite oublie PHP + SSE c'est trop moche.


RE: Quelle technologie pour un jeu de carte pseudo temps réel ? - Soleo - 16-03-2014

Je vois...

J'avais pensé à autre chose aussi et j'aimerais savoir si c'est envisageable et intéressant
L'idée serait de faire un fichier txt lorsqu'un joueur fait une action avec comme nom son id, et de l'autre coté une fonction en interval qui va juste check si ce fichier existe, et si c'est le cas fera alors la requête mysqli pour récupérer les nouvelles informations, est-ce que des gens font ça ? (Lorsqu'ils n'ont pas de dédié ou d'hébergeur très sympathique)


RE: Quelle technologie pour un jeu de carte pseudo temps réel ? - niahoo - 17-03-2014

Oui tu peux, mais utilises plutôt une entrée dans une table réservée à cet effet. Comme d'hab, une table en RAM qui sera bien plus rapide qu'un fichier texte.

Mais si le but c'est de faire des SSE ça reste un peu bancal.