Ich habe ein Gerät, das über WebSocket eine Verbindung zu einem Server herstellt (in Scala und Play geschrieben). Wenn ich das Gerät ausschalte, bleibt die Verbindung offen. Gibt es eine Möglichkeit, ein Keepalive-Zeitlimit für die WebSocket-Verbindung im Play-Framework festzulegen, um zu überprüfen, ob der Clientendpunkt deaktiviert ist. Vielen Dank.Play Framework: WebSocket Verbindungszeitüberschreitung
7
A
Antwort
0
Dieses Problem ist vor einer Weile aufgetreten. Die Lösung, auf die wir uns einigten, war die Implementierung einer Herzschlagstrategie (Ping-Pong-Strategie).
Also alle 5 Sekunden zum Beispiel senden Sie eine ping
Nachricht und warten auf die pong
Antwort, dann killen die Verbindung (ein Actor in unserem Anwendungsfall) an den Abonnenten, wenn keine Nachricht empfangen wird.