java - Tomcat JSR 356 websocket 刷新页面时出现异常

标签 java tomcat websocket jsr356

我有 ServerEndpoint 类:

@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");
    }
}

当我刷新页面时,onError 被调用并且异常 t 包含下一个描述: java.util.concurrent.ExecutionException: java.net.SocketException: 断管

可以是什么原因?

最佳答案

当我使用 Chrome 或 Chromium 打开页面时遇到相同的异常。 (当我使用 Firefox 时,它永远不会发生)。我不确定您是否也在使用 Chrome。我想这是因为 V8 引擎。

我的解决方案是在离开页面之前关闭网络套接字:

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

但是当我使用 Tyrus 时,我没有看到任何这样的异常。作为我的网络套接字服务器。希望有人能说明这个问题的直接原因。谢谢!

关于java - Tomcat JSR 356 websocket 刷新页面时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23984752/

相关文章:

java - 为什么我的@singleton 不起作用?

tomcat - tomcat 5.5.25 上的 x-forward-for

Java 时区问题

java - 安卓 : Connection refused at POP3Store

java - Tomcat 6.0 碧 Jade 异常

java - jndi 查找 DefaultFtpSessionFactory

node.js - 在socket.io中如何让客户端在网络丢失时立即断开连接?

javascript - PhoneGap for iOS 中的 websockets 状态如何?

javascript - 为什么通过Web套接字客户端上传时文件大小总是为零?

java - 如果服务器停止,如何删除 session