27-04-2020, 03:10 PM
Heu, si, c'est un problème totalement solvable, il faut juste que:
- tu fasses ton client JS pour ne pas empiler 50 requêtes si ce n'est pas utile
- utiliser les session en read_and_close pour tes long pollings
- transactionner tes pages pour ne pas faire n'importe quoi en DB, mais ne pas transactionnner les long polling (dans ce cas, ne transactionne que la partie "dans la boucle d'attente active", et PAS le "sleep()")
C'est une "race condition" que tu as, très probablement oui, mais la notion de "ca vient de ceux qui ont une connexion rapide par rapport aux autres", ça sent le flan comme "diagnostique": ca vient en vrai d'un problème de code, qui a plus de chances éventuellement de se produire si les vitesses des connexions des joueurs diffèrent.
Comme j'ai énormément de mal à comprendre ta logique de code, je te conseille de faire un diagramme sur un papier, avec le process décrivant le combat entre les deux joueurs (en termes de codes pas en termes de gameplay). Je pense que tu verras d'ailleurs vite où se situe le vrai soucis en faisant ça
- tu fasses ton client JS pour ne pas empiler 50 requêtes si ce n'est pas utile
- utiliser les session en read_and_close pour tes long pollings
- transactionner tes pages pour ne pas faire n'importe quoi en DB, mais ne pas transactionnner les long polling (dans ce cas, ne transactionne que la partie "dans la boucle d'attente active", et PAS le "sleep()")
C'est une "race condition" que tu as, très probablement oui, mais la notion de "ca vient de ceux qui ont une connexion rapide par rapport aux autres", ça sent le flan comme "diagnostique": ca vient en vrai d'un problème de code, qui a plus de chances éventuellement de se produire si les vitesses des connexions des joueurs diffèrent.
Comme j'ai énormément de mal à comprendre ta logique de code, je te conseille de faire un diagramme sur un papier, avec le process décrivant le combat entre les deux joueurs (en termes de codes pas en termes de gameplay). Je pense que tu verras d'ailleurs vite où se situe le vrai soucis en faisant ça