15-03-2014, 01:44 PM
Bonjour,
Je sais qu'il y a de nombreux sujets ici ayant déjà abordé cette problématique, j'en ai regardé la plupart mais il y a encore des éléments qui me paraissent obscurs...
J'ai pour but de coder un jeu de carte en ligne et j'ai par défaut fait mes tests en local et en utilisant de l'Ajax regardant dans la base de donnée toutes les 4 secondes si une action a été effectuée par l'adversaire entre temps, régissant alors l'ordre des tours.
Cependant cette méthode n'étant absolument pas optimisée du fait de 2 requêtes mysqli par 4 secondes multiplié par le nombre de joueurs... Voilà, bon, j'en ai bien conscience ce n'est pas adapté.
Alors j'ai parcouru nombreux forums (En retombant souvent sur le votre) et pu prendre connaissance de nombreuses technologies (Websockets, SSE, Node.js ...)
Je souhaite simplement que le changement partiel de la page (via Js) soit effectué uniquement lorsque la table en question avec l'id correspondant a été update. Pas de faire 1req/sec. (Quand un joueur joue une carte, l'autre la voit puis c'est à son tour)
Ma première question est donc, que serait le langage le plus adapté et le plus simple à mettre en oeuvre ?
Ma deuxième question est la suivante, j'ai fait un test simple en utilisant les Server Sent Event, la page streamée est approximativement de la sorte :
SELECT les utilisateurs connecté grâce à une requête mysqli
tant que $row $query->fetch_assoc
array_push(un array, $row['pseudo']);
$final = json_encode(un array)
echo 'data: {$final}\n\n'
flush
Tandis que la page qui affichera ne contient que le strict nécessaire en js pour voir le résultat, ce dernier m'ayant surpris:
La liste de tous les utilisateurs connectés s'affichent bien... Mais toutes les secondes ? Cela n'était pas censé afficher uniquement lorsque la liste change ? Ou bien une notion m'échappe ? Car dans ce cas c'est exactement pareil qu'un requête par seconde...
J'ai besoin d'un peu d'éclaircissement ^^'
Merci d'avance.
Je sais qu'il y a de nombreux sujets ici ayant déjà abordé cette problématique, j'en ai regardé la plupart mais il y a encore des éléments qui me paraissent obscurs...
J'ai pour but de coder un jeu de carte en ligne et j'ai par défaut fait mes tests en local et en utilisant de l'Ajax regardant dans la base de donnée toutes les 4 secondes si une action a été effectuée par l'adversaire entre temps, régissant alors l'ordre des tours.
Cependant cette méthode n'étant absolument pas optimisée du fait de 2 requêtes mysqli par 4 secondes multiplié par le nombre de joueurs... Voilà, bon, j'en ai bien conscience ce n'est pas adapté.
Alors j'ai parcouru nombreux forums (En retombant souvent sur le votre) et pu prendre connaissance de nombreuses technologies (Websockets, SSE, Node.js ...)
Je souhaite simplement que le changement partiel de la page (via Js) soit effectué uniquement lorsque la table en question avec l'id correspondant a été update. Pas de faire 1req/sec. (Quand un joueur joue une carte, l'autre la voit puis c'est à son tour)
Ma première question est donc, que serait le langage le plus adapté et le plus simple à mettre en oeuvre ?
Ma deuxième question est la suivante, j'ai fait un test simple en utilisant les Server Sent Event, la page streamée est approximativement de la sorte :
SELECT les utilisateurs connecté grâce à une requête mysqli
tant que $row $query->fetch_assoc
array_push(un array, $row['pseudo']);
$final = json_encode(un array)
echo 'data: {$final}\n\n'
flush
Tandis que la page qui affichera ne contient que le strict nécessaire en js pour voir le résultat, ce dernier m'ayant surpris:
La liste de tous les utilisateurs connectés s'affichent bien... Mais toutes les secondes ? Cela n'était pas censé afficher uniquement lorsque la liste change ? Ou bien une notion m'échappe ? Car dans ce cas c'est exactement pareil qu'un requête par seconde...
J'ai besoin d'un peu d'éclaircissement ^^'
Merci d'avance.