Sto riscontrando alcuni problemi con l'API del socket Java. Sto cercando di visualizzare il numero di giocatori attualmente collegati al mio gioco. È facile determinare quando un giocatore si è connesso. Tuttavia, sembra inutilmente difficile determinare quando un giocatore si è disconnesso utilizzando l'API socket.
La chiamata isConnected()
su una presa che è stata scollegata da remoto sembra sempre tornare true
. Allo stesso modo, la chiamata isClosed()
su un socket che è stato chiuso in remoto sembra sempre tornare false
. Ho letto che per determinare effettivamente se un socket è stato chiuso o meno, i dati devono essere scritti nel flusso di output e deve essere rilevata un'eccezione. Sembra un modo davvero impuro per gestire questa situazione. Dovremmo semplicemente spammare costantemente un messaggio spazzatura sulla rete per sapere quando un socket si è chiuso.
c'è un'altra soluzione?