java.io.EOFException   at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer

如题,网上找了相关资料查明是websocket连接超时的问题。使用了反向代理,因此超过60S没有数据传输的连接会断开。

把代理的那个超时时间设置长一点,无限长。你开什么玩笑!那还代理个啥玩意。

解决方法一:后台写个定时程序每<60s频率给前端的socket发个消息就好了。

1import org.springframework.context.annotation.Configuration; 2import org.springframework.scheduling.annotation.EnableScheduling; 3import org.springframework.scheduling.annotation.Scheduled; 4import javax.annotation.Resource; 5 6/** 7 * @Auther: lanhaifeng 8 * @Date: 2019/5/16 0016 14:29 9 * @Description:webSocket定时发送消息类 10 * @statement: 以<60s的频率发送给websocket连接的对象,以防止反向代理的60s超时限制 11 */ 12@Configuration //1.主要用于标记配置类,兼备Component的效果。 13@EnableScheduling // 2.开启定时任务 14public class SaticScheduleTask { 15 16 @Resource 17 private WebSocketServer webSocketServer; 18 19 20 //3.添加定时任务 21 //@Scheduled(cron = "0/5 * * * * ?") 22 //或直接指定时间间隔,例如:5秒 23 @Scheduled(fixedRate=58*1000) 24 private void configureTasks() throws Exception{ 25 webSocketServer.sendMessage("连接成功"); 26 } 27} 28 29前提是你的websocket是多线程模式,否则多个socket连接会因为一个session的问题报错。参考spring boot集成Websocket
点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

NGINX 502 BAD GATEWAY的解决办法

出现502badgateway错误的原因1.phpfpm进程数不够用2.Linux内核打开文件数量小3.脚本执行时间超时4.缓存设置比较小网站间歇性出现502,第一反应不是程序的问题,而是nginx服务器的问题,因为这是代理服务器出现的问题,代理服务器并没有安装php排除第一中情况。于此想到的是可能是超时,所以我把超时修

Python与MySQL如何保持长连接

Python与MySQL如何保持长连接介绍在python后端开发中,时常会与数据库交互,重复的断开、连接会大大消耗数据库资源。所以一般都是定义全局变量,来弥补这个缺陷。但是Python与Mysql长连接的过程中,如果长时间没有交互,它是会断开的。再次执行sql语句是就会

Java中httpClient中的三种超时设置总结

在Apache的HttpClient包中,有三个设置超时的地方:/\从连接池中取连接的超时时间\/ConnManagerParams.setTimeout(params,1000);/_连接超时_/HttpConnectionParams.setConnectionTimeout(params,2000);/_请求超时_/HttpCon

Nginx的反向调度功能

1.案例实现Nginx反向代理;2.反向代理的理论知识拓展.一,实验Nginx的反向代理功能 使用Nginx实现Web反向代理功能,实现如下功能:后端Web服务器两台,可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为1,失败超时时间为

PHP的超时实现

我们知道PHP可以设置一个脚本执行的超时时间,也就是脚本的执行时间不能超过设置的超时时间.那么PHP是怎么做到这个功能的呢?  其实PHP的超时功能利用了操作系统的定时信号来实现的,在一个请求开始时(php\_request\_startup),PHP便会利用zend\_set\_timeout()接口来设置一个定时器信号,