Estou tendo alguns problemas com a API de soquete Java. Estou tentando exibir o número de jogadores atualmente conectados ao meu jogo. É fácil determinar quando um jogador está conectado. No entanto, parece desnecessariamente difícil determinar quando um jogador se desconectou usando a API de soquete.
Chamar isConnected()
um soquete que foi desconectado remotamente sempre parece retornar true
. Da mesma forma, chamar isClosed()
em um soquete que foi fechado remotamente sempre parece retornar false
. Eu li que para realmente determinar se um soquete foi fechado ou não, os dados devem ser gravados no fluxo de saída e uma exceção deve ser detectada. Esta parece ser uma maneira muito suja de lidar com essa situação. Teríamos apenas que enviar spam constantemente uma mensagem de lixo pela rede para saber quando um soquete foi fechado.
existe alguma outra solução?