java websocket发生EOFException

时间:2016-12-17 05:59:59

标签: java exception websocket eofexception

我正在使用基于JAVA的websocket,但是我收到了一个我不理解的错误。

当服务器获得RuntimeExceptionNullPointerException等时,会调用onError方法。

之后(完成onError方法),再次调用onError方法。第二次之后,EOFException连续发生。

您是否知道在EOFException方法之后onError发生了什么?

这是我的错误日志:

java.io.EOFException
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1267)
    at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.isReadyForRead(NioEndpoint.java:1176)
    at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:58)
    at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
    at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:788)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1485)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

感谢。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,如果您使用ngingx重定向websocket请求,则必须增加proxy_read_timeout值,否则连接将在60秒后关闭(默认情况下)

答案 1 :(得分:0)

通常在客户端与服务器的连接断开时发生。 发生这种情况的原因可能多种多样,通常是介于两者之间的任何负载平衡器或tomcat设置都设置了超时,但也可能是客户端以及客户端与服务器之间的任何网络中断。

别忘了在OnError方法中处理该异常,通常您要在此关闭会话。