/ / Ausnahme beim Aktualisieren der Seite in Tomcat JSR 356 Websocket - Java, Tomcat, Websocket, jsr356

Ausnahme beim Aktualisieren der Seite in Tomcat JSR 356 websocket - java, tomcat, websocket, jsr356

Ich habe ServerEndpoint-Klasse:

@ServerEndpoint(value = "/websocket", configurator = ServletAwareConfig.class)
public class WebsocketEndpoint {

@OnOpen
public void onOpen(Session session) {
System.out.println("OnOpen");
}

@OnClose
public void onClose(Session session) {
System.out.println("OnClose");
}

@OnMessage
public void onMessage(String message, Session session) {
System.out.println("OnMessage");
}

@OnError
public void onError(Throwable t) throws Throwable {
System.out.println("OnError");
}
}

Wenn ich die Seite aktualisiere, wird onError aufgerufen und die Ausnahme enthält folgende Beschreibung: java.util.concurrent.ExecutionException: java.net.SocketException: Gebrochene Pipe

Was kann Grund sein?

Antworten:

2 für die Antwort № 1

Ich habe dieselbe Ausnahme, wenn ich Chrome oder Chromium zum Öffnen der Seite verwende. (Es tritt nie auf, wenn ich Firefox verwende). Ich bin mir nicht sicher, ob Sie auch Chrome verwenden. Ich schätze, es liegt am V8-Motor.

Meine Lösung ist, den Web-Socket vor dem Verlassen der Seite zu schließen:

window.addEventListener ("beforeunload", function(){ socket.close(); });

Aber ich habe keine Ausnahmen wie diese gesehen, wenn ich es benutze Tyrus als mein Web-Socket-Server. Hofft, jemand kann den direkten Grund für dieses Problem zeigen. Vielen Dank!