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

Wesley13
• 阅读 827

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

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

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

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import javax.annotation.Resource;

/**
 * @Auther: lanhaifeng
 * @Date: 2019/5/16 0016 14:29
 * @Description:webSocket定时发送消息类
 * @statement: 以<60s的频率发送给websocket连接的对象,以防止反向代理的60s超时限制
 */
@Configuration      //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling   // 2.开启定时任务
public class SaticScheduleTask {

    @Resource
    private WebSocketServer webSocketServer;


    //3.添加定时任务
    //@Scheduled(cron = "0/5 * * * * ?")
    //或直接指定时间间隔,例如:5秒
    @Scheduled(fixedRate=58*1000)
    private void configureTasks() throws Exception{
        webSocketServer.sendMessage("连接成功");
    }
}

前提是你的websocket是多线程模式,否则多个socket连接会因为一个session的问题报错。参考spring boot集成Websocket
点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
SSH 登录太慢的解决方法
SSH登录太慢可能是DNS解析的问题,默认配置下sshd初次接受ssh客户端连接的时候会自动反向解析客户端IP以得到ssh客户端的域名或主机名。如果这个时候DNS的反向解析不正确,sshd就会等到DNS解析超时后才提供ssh连接,这样就造成连接时间过长、ssh客户端等待的情况,一般为1030秒左右。有个简单的解决办法就
Wesley13 Wesley13
3年前
NGINX 502 BAD GATEWAY的解决办法
出现502badgateway错误的原因1.phpfpm进程数不够用2.Linux内核打开文件数量小3.脚本执行时间超时4.缓存设置比较小网站间歇性出现502,第一反应不是程序的问题,而是nginx服务器的问题,因为这是代理服务器出现的问题,代理服务器并没有安装php排除第一中情况。于此想到的是可能是超时,所以我把超时修
Stella981 Stella981
3年前
Python与MySQL如何保持长连接
Python与MySQL如何保持长连接介绍在python后端开发中,时常会与数据库交互,重复的断开、连接会大大消耗数据库资源。所以一般都是定义全局变量,来弥补这个缺陷。但是Python与Mysql长连接的过程中,如果长时间没有交互,它是会断开的。再次执行sql语句是就会
Wesley13 Wesley13
3年前
Java中httpClient中的三种超时设置总结
在Apache的HttpClient包中,有三个设置超时的地方:/\从连接池中取连接的超时时间\/ConnManagerParams.setTimeout(params,1000);/_连接超时_/HttpConnectionParams.setConnectionTimeout(params,2000);/_请求超时_/HttpCon
Stella981 Stella981
3年前
Nginx的反向调度功能
1.案例实现Nginx反向代理;2.反向代理的理论知识拓展.一,实验Nginx的反向代理功能 使用Nginx实现Web反向代理功能,实现如下功能:后端Web服务器两台,可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为1,失败超时时间为
Stella981 Stella981
3年前
Nginx(Windows)
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。比如我
Wesley13 Wesley13
3年前
PHP的超时实现
我们知道PHP可以设置一个脚本执行的超时时间,也就是脚本的执行时间不能超过设置的超时时间.那么PHP是怎么做到这个功能的呢?  其实PHP的超时功能利用了操作系统的定时信号来实现的,在一个请求开始时(php\_request\_startup),PHP便会利用zend\_set\_timeout()接口来设置一个定时器信号,
Wesley13 Wesley13
3年前
TCP之超时重传机制
  TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错、超时丢包等问题TCP设计了超时重传机制,其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到发送数据的ACK确认报文,则对该报文进行重传,在达到一定次数还没有成功时放弃并发送一个复位信号。1、超时重传时间  R
捉虫大师 捉虫大师
2年前
浅谈长连接负载均衡
hello,大家好,我是小楼,终于忙完了一阵,今天来更新一篇长连接的负载均衡问题。首先说明下,长连接我不是专业的,只是在工作上有一点点的接触,分享也是基于一点点的经验和一些思考,如有出入,欢迎私聊。长连接介绍说长连接,与之对应的是短连接