spring websocket 客户端在消息大时出现连接断开问题
服务端发过来的消息大于了所设置的buffer大小,一般是默认大小如图。
·
出现问题原因:
服务端发过来的消息大于了所设置的buffer大小,一般是默认大小如图
定位问题思路
- 通过wireshark抓包确定是哪一方主动断开连接;
- debug代码,查看异常栈信息,定位抛出异常位置
- 如图,我定位到org.apache.tomcat.websocket.WsFrameClient读取消息时抛出异常。得出结论
解决方法
在main方法中设置系统变量,保证在加载org.apache.tomcat.websocket.Constants之前设置
public static void main(String[] args) {
//超过你的最大消息大小
System.setProperty("org.apache.tomcat.websocket.DEFAULT_BUFFER_SIZE","32768");
SpringApplication.run(ProbeEdgeApplication.class, args);
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)