websocket 大文件传输问题解决办法
环境为spring boot 2+
网上找了很多博客写法 其中一位写的比较详细的
但是其中的写法使用 好像并没有用
/**
* 当websocket连接成功的时候就是准备上传文件的时候
* @param session
*/
@OnOpen
public void onOpen(Session session) {
//扩大一次性上传的最大数值
session.setMaxBinaryMessageBufferSize(BreakpointUploadConfig.blobSize+8);
}
不过这种思路确实可以:把大文件切分为小文件传输,因为websocket 是长连接因此多次传输对效率确实也没有很大的影响,不过还是觉得不官方
因此,查看官方介绍:spring boot 官方文档 websocket 配置
可以通过配置 ServletServerContainerFactoryBean
@Bean
public ServletServerContainerFactoryBean createWebSocketContainer() {
ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean();
// 可以自由设定大小
container.setMaxTextMessageBufferSize(81920);
container.setMaxBinaryMessageBufferSize(1024*1024*20);
return container;
}
这样即达到了自由设定传输大小,如http 一般