websocket 傳輸大文件 參考官方配置 解決方法

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 一般

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章