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