2015-08-28 20 views
7

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

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.