码头 WebSocket 超时异常:空闲超时已过期?



我在服务器端的 Jetty Websocket (jetty-all-9.4.5.v20170502-uber.jar( 上获得一次超时:

**java.util.concurrent.TimeoutException: Idle timeout expired: 300011/300000 ms**
Socket Closed: CloseReason[1001,Idle Timeout]
Socket Closed: CloseReason[1001,Idle Timeout]
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:166)
at org.eclipse.jetty.io.IdleTimeout$1.run(IdleTimeout.java:50)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)**

这是一个独特的事件,一开始,其他一切都很完美!

我试图改变这一点:

_context = new ServletContextHandler(ServletContextHandler.SESSIONS);
_context.setContextPath("/");
System.out.println(_context.getStopTimeout());
_context.setStopTimeout(0);
_server.setHandler(_context);

~没有成功!

不知道。

警告:不要将jetty-all用于项目,它不应在 Jetty 快速入门文档之外使用。

WebSocket 中的空闲超时由 WebSocketPolicy 控制。

空闲超时可以在 WebSocket 容器(例如:WebSocketClient 或 WebSocketServletFactory(上指定,甚至可以在单个连接的 WebSocket 会话上指定。

您的代码示例未显示与 WebSocket 相关的任何内容,因此我无法为您提供配置 Websocket 行为所需的特定信息。

最新更新