09-04-2016, 05:12 PM
Nan, le long polling, c'est une seule requête lancée par le client que le serveur "fait trainer" le temps d'avoir une réponse (ce "fait trainer" pouvant être un while (true) qui teste si une nouvelle info est apparue en BDD, plutôt lourd coté serveur donc, ou un système d'évènement qui limite ces attentes actives).
"Pinger" toutes les secondes une page pour récupérer une info, c'est une approche différente, et un long-polling devient intéressant quand ce "ping toutes les secondes" renvoie "rien de neuf!" trop souvent.
Si deux joueurs différents font une requête, en PHP, cela sera traité en parallèle. Si la BDD est impliquée, alors la BDD traitera une requête après l'autre, dans l'ordre de chaque page mais en mélangeant peut-être les pages. C'est à dire que si la page fait plusieurs requêtes RA RB RC et qu'elle est demandée par J1 et J2, alors tu peux avoir RA1 RB1 RC1 RA2 RB2 RC2 (chance!) ou RA1 RA2 RB2 RB1 RC2 RC1. Si ces requêtes interfèrent, le mieux est donc d'encapsuler les requêtes de la page dans une transaction (cherches le net, tu trouveras à quoi cela sert).
Websocket sert juste à faire du "temps réel" (en fait, un tunnel client->serveur ET serveur->client à peu près temps réel, autant que le net sait le faire en fait), cela ne change en rien ce qui se passe coté BDD.
"Pinger" toutes les secondes une page pour récupérer une info, c'est une approche différente, et un long-polling devient intéressant quand ce "ping toutes les secondes" renvoie "rien de neuf!" trop souvent.
Si deux joueurs différents font une requête, en PHP, cela sera traité en parallèle. Si la BDD est impliquée, alors la BDD traitera une requête après l'autre, dans l'ordre de chaque page mais en mélangeant peut-être les pages. C'est à dire que si la page fait plusieurs requêtes RA RB RC et qu'elle est demandée par J1 et J2, alors tu peux avoir RA1 RB1 RC1 RA2 RB2 RC2 (chance!) ou RA1 RA2 RB2 RB1 RC2 RC1. Si ces requêtes interfèrent, le mieux est donc d'encapsuler les requêtes de la page dans une transaction (cherches le net, tu trouveras à quoi cela sert).
Websocket sert juste à faire du "temps réel" (en fait, un tunnel client->serveur ET serveur->client à peu près temps réel, autant que le net sait le faire en fait), cela ne change en rien ce qui se passe coté BDD.