Bonjour, je m'adresse à ceux qui ont un peu d'expérience avec les serveurs java (ServerSocket & Socket) de l'api java. Je développe présentement un jeu 2d multijoueur où le serveur sert de relais entre chaque joueur, entre autre pour les déplacements. Mon protocole pour les déplacements ressemble à ceci:

Pour débuter un déplacement:
Joueur1 -> (deplacer vecteur(x,y)) -> Serveur -> (deplacer vecteur(x,y)) -> AutresJoueurs

Pour signaler à tlm que le déplacement est terminé:
Joueur1 -> (arreterDeplacement coordXFinal,coordYFinal) -> Serveur -> (arreterDeplacement coordXFinal,coordYFinal) -> AutresJoueurs

De cette façon, le serveur ne reçoit que 2 paquets au total pour 1 déplacement. Bien que ce protocole soit optimisé, mon serveur semble ne pas pouvoir gérer plus de 60 clients dans la même carte.

Pour effectuer mes tests, j'ai généré 60 "robots" qui tournent en ronds dans la carte. Dépassé ce seuil, le serveur finit par ne plus recevoir les paquets .. bien que les "robots" en envoient encore. Information: Chaque client a un socket et un thread de lecture attaché. J'implémente le ping/pong pour m'assurer de l'activité des clients. Après un certain délais .. le serveur déconnecte les robots car il ne reçoit pas les pong mais .. le serveur ne reçoit plus rien .. quelqu'un aurait une idée de ce qui peut causer ce "bloquage"?