<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency
1
vagusss 165 天前
客户端搞个断开重连机制
|
![]() |
3
ksco 165 天前
1. 加心跳( PING/PONG frame );
2. 服务端维护队列,如果没有和客户端连接成功,就先把消息放到队列中暂存。 |
![]() |
5
gesse 165 天前
先把问题简单化
你先建立一个普通的 tcp 连接, 设置 keepalive ,看看会不会被阻断,看是否能找到原因。 |
6
whajcf 165 天前
环境问题 我们 4 套 k8s 环境 其中一套阿里云功能就是这个情况 排查到最后就是网关的配置问题
解决办法就是业务放队列 加重发机制 加回执 |
7
coderxy 165 天前
大概率是中间某个环节出了问题造成连接被中断。 可以做测试,最后确定到底是哪两个节点之间出的问题
|
![]() |
8
des 165 天前 via iPhone
看看是不是准时一个小时?如果是的话那就是某处有超时
|
![]() |
9
lambdaq 165 天前
很显然,org.java-websocket 和浏览器之间还有个比如 nginx 之类的可以撑 60 分钟不掉线的中间件
|
![]() |
10
xiaoshenghaohao 165 天前
@lambdaq 赞同,估计 nginx 设置的时间 proxy_connect_timeout ,proxy_read_timeout ,proxy_send_timeout 应该是 60 分钟
|
![]() |
12
ytmsdy 165 天前
之前也遇到过这个问题,连着好好的,但是会断。
我的处理方式是这样的,把接受到的消息直接 push 到 redis 里面,提高响应速度。 然后用单独的程序,把 redis 里面的数据 pop 出来。 这么处理以后,就没有再出现过问题了。 后来我想了想有可能是服务端的 WebSotket 觉得你响应太慢了,然后把通信给关掉了。 |
13
angryPHP 134 天前
楼主解决了没
|