Je rencontre des problèmes avec l'API de socket Java. J'essaye d'afficher le nombre de joueurs actuellement connectés à mon jeu. Il est facile de déterminer quand un joueur s'est connecté. Cependant, il semble inutilement difficile de déterminer quand un joueur s'est déconnecté à l'aide de l'API socket.
L'appel isConnected()
sur une socket qui a été déconnectée à distance semble toujours revenir true
. De même, appeler isClosed()
une socket qui a été fermée à distance semble toujours revenir false
. J'ai lu que pour déterminer réellement si une socket a été fermée ou non, les données doivent être écrites dans le flux de sortie et une exception doit être interceptée. Cela semble être une manière vraiment impure de gérer cette situation. Nous aurions juste constamment à spammer un message indésirable sur le réseau pour savoir quand un socket s'est fermé.
N 'y a-t-il pas une autre solution?