我正在使用Java websocket,但是我得到了一个我不理解的错误。
当服务器获得RuntimeException或NullPointerException等时,将调用onError方法。
在此之后(完成的onError方法),再次调用onError方法。在第二次之后,EOFException继续发生。
你知道为什么在onError方法之后会出现EOFException吗?
以下是我的错误日志:
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)发布于 2017-03-28 20:52:58
我和你有同样的问题。如果你使用NGINGX来重定向websocket请求,你必须增加proxy_read_timeout的值。否则,连接将在60秒后关闭(默认)。
发布于 2020-11-23 17:11:36
这种情况通常发生在客户端与服务器的连接断开时。发生这种情况的原因有很多,通常是在介于两者之间的任何负载均衡器上设置的超时,或者是tomcat设置,但也可能是客户端以及客户端和服务器之间的任何网络中断。
不要忘记处理OnError方法中的异常,通常您希望在那里关闭会话。
https://stackoverflow.com/questions/41195821
复制相似问题