Wie kann Sie schnell schließen nonresponsive websocket in Java Spring Tomcat?

Habe ich ein real-time-Anwendung mit clients über websockets an die Verbindung mit dem Spring-Framework-server, die ausgeführt wird Frühling Starten Tomcat. Ich will, dass die server schnell (innerhalb 5 Sekunden) erkennen, wenn ein client reagiert nicht mehr wegen zu einem Netzwerk trennen oder andere Problem und schließen der websocket.

Habe ich versucht

  1. Einstellung der max session idle timeout wie in der Dokumentation beschrieben, wie Sie in "Konfigurieren der WebSocket-Motor"
    http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html

    @Bean
    public WebSocketHandler clientHandler() {
        return new PerConnectionWebSocketHandler(ClientHandler.class);
    }
    @Bean
    public ServletServerContainerFactoryBean createWebSocketContainer() {
        ServletServerContainerFactoryBean container = 
            new ServletServerContainerFactoryBean();
        container.setMaxSessionIdleTimeout(5000);
        container.setAsyncSendTimeout(5000);
        return container;
    }

Ich bin nicht sicher, ob dies korrekt umgesetzt, da sehe ich nicht den Zusammenhang zwischen der ServletServerContainerFactoryBean und meine generation ClientHandlers.

  1. Senden von ping-Nachrichten vom server alle 2,5 Sekunden. Nachdem ich manuell trennen Sie den client, indem man das Netzwerk-Verbindung, der server glücklich werden pings für weitere 30 Sekunden, bis ein transport-Fehler angezeigt.

  2. 1 und 2 gleichzeitig

  3. 1 und 2 und Einstellung server.session-timeout = 5 in der Anwendung.Eigenschaften

Meine Methode für das testen dieser ist:

  1. Eine websocket-Verbindung von einem laptop-Clients in das Tomcat-server
  2. Schalten Sie die Netzwerk-Verbindung auf dem laptop mit dem physischen Schalter
  3. Warten Sie, bis Tomcat-server-Ereignisse

Wie funktioniert eine Feder FrameworkTomcat server schnell zu erkennen, dass ein client wurde getrennt oder reagiert nicht schließen der websocket?

InformationsquelleAutor mattm | 2014-10-04
Schreibe einen Kommentar