如何在Java Spring Tomcat中快速关闭无响应的Websocket?
我有一个实时应用程序,客户端使用websockets连接到运行
Spring Boot Tomcat的Spring Framework服务器.我想要服务器快速(5秒钟内)检测客户端由于网络断开连接或其他问题而停止响应并关闭Websocket.
我努力了 >如文档中所述,将“最大会话空闲超时”设置为“配置WebSocket引擎” @Bean public WebSocketHandler clientHandler() { return new PerConnectionWebSocketHandler(ClientHandler.class); } @Bean public ServletServerContainerFactoryBean createWebSocketContainer() { ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean(); container.setMaxSessionIdleTimeout(5000); container.setAsyncSendTimeout(5000); return container; } 我不知道这是否正确实现,因为我没有看到ServletServerContainerFactoryBean和我的一代ClientHandler之间的链接. >每2.5秒从服务器发送ping消息.在手动断开客户端断开网络连接后,服务器可以快速地发送ping 30秒,直到出现传输错误. 我的测试方法是: >将websocket从笔记本电脑客户端连接到Tomcat服务器 Spring FrameworkTomcat服务器如何快速检测到客户端已断开连接或没有响应关闭Websocket? 解决方法
Application Events可能会帮你
PS:Annotation driven events PS2:我为你做了example project (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |