websocket 大文件传输问题解决办法

环境为spring boot 2+

网上找了很多博客写法 其中一位写的比较详细的

使用websocket进行断点续传文件

但是其中的写法使用 好像并没有用

  /**
     * 当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 一般

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐