websocket服务端大报文发送连接自动断开分析

概述

当前springboot版本:2.7.4

使用依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

现象概述:

客户端和服务端已经有心跳连接正常ping,pong.

服务端发送大报文给客户端时,当经过心跳间隔,chrome(客户端)中提示websocket连接已被关闭。

此时打开chromenetwork查看ws报文发送情况,发现服务端并没有推送报文过来。

这个时候就怀疑是服务端在某个异常情况下关闭了连接

排查经过

先查看websocket服务端的tomcat日志,并没有发现可疑的日志,只看到在调用sendMessage前的一个log.info日志。

那么此时就准备开始调试了,进入发送消息的地方,发现有个超时时间
org.apache.tomcat.websocket.WsRemoteEndpointImplBase#sendMessageBlock(java.nio.CharBuffer, boolean)

点进去后,看到默认是 20s + 当前时间戳

然后发送的时候比较当前发送的总时间是否已经超过20s,如果超过则直接关闭连接。

org.apache.tomcat.websocket.WsRemoteEndpointImplBase#sendMessageBlock(byte, java.nio.ByteBuffer, boolean, long)

相关推荐
糖~醋排骨2 分钟前
DHCP服务的搭建
linux·服务器·网络
huohaiyu8 分钟前
网络中的一些基本概念
运维·服务器·网络
llddycidy16 分钟前
峰值需求预测中的机器学习:基础、趋势和见解(最新文献)
网络·人工智能·深度学习
小林一直冲21 分钟前
华为设备配置与命令
网络
QH1392923188043 分钟前
罗德与施瓦茨 与ZNA43网络分析仪的联合测试流程
网络
晚风(●•σ )43 分钟前
【华为 ICT & HCIA & eNSP 习题汇总】——题目集28
网络·计算机网络·华为·路由器·ensp·交换机
优选资源分享1 小时前
PDF Anti-Copy Pro v2.6.2.4:PDF 防拷贝工具
网络·安全·pdf
掘根1 小时前
【仿Muduo库项目】HTTP模块1——Util子模块
网络·网络协议·http
qq_401700411 小时前
带宽与网速是一回事吗
网络
C_心欲无痕1 小时前
网络相关 - Ngrok内网穿透使用
运维·前端·网络