Ich verwende Java und Netty, um über eine TCP/IP-Verbindung eine Verbindung zu einem Unity-Client herzustellen.Schreiben genug, um einen Verbindungsverlust zu erkennen?
Manchmal kann die Verbindung unterbrochen werden und der Unity-Typ hat vorgeschlagen, alle 5 Sekunden einen Ping (nur eine Ein-Byte-Nachricht) zu senden. Wenn die Empfangszeit des letzten Ping höher als 30 Sekunden ist, ist die Verbindung verloren.
Muss ich wirklich die Zeit messen? Ist es nicht genug, um eine Ausnahme auszulösen, wenn ich versuche, etwas über den Socket zu senden? Gibt es einen Fall, in dem ein Schreibvorgang keinen Verbindungsverlust erkennt?
Ich habe es netty da ich es benutze, aber es ist wahrscheinlich das gleiche mit einer einfachen Socket-Verbindung.
Nein, es ist nicht genug. TCP hat Puffer an beiden Enden, was bedeutet, dass jeder spezifische Schreibvorgang überhaupt nicht fehlschlägt: Es sind die nachfolgenden Schreibvorgänge, die fehlschlagen. – EJP