websocket設置傳輸大小


tomcat中有提到:

If the application does not define a MessageHandler.Partial for incoming text messages, any incoming text messages must be buffered so the entire message can be delivered in a single call to the registered MessageHandler.
Whole for text messages. The default buffer size for text messages is 8192 bytes. This may be changed for a web application by setting the servlet context initialization parameter org.apache.tomcat.websocket.
textBufferSize to the desired value in bytes.

1、對項目web.xml添加如下配置(注意單位為byte)
<context-param>
    <param-name>org.apache.tomcat.websocket.textBufferSize</param-name>
    <param-value>5242800</param-value>
</context-param>

2、對於spring工程來說這個方法沒問題可以生效,但是springboot並沒有web.xml該如何解決呢?如下:

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class WebSocketConfig implements ServletContextInitializer{
    
    //配置websocket傳輸大小,50M
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        servletContext.addListener(WebAppRootListener.class);
        servletContext.setInitParameter("org.apache.tomcat.websocket.textBufferSize","52428800");
        servletContext.setInitParameter("org.apache.tomcat.websocket.binaryBufferSize","52428800");
    }
}

注意:在使用的時候還發現了一個問題,如上配置假如是以springboot內置tomcat啟動是沒有問題的,但是打成war后使用外置tomcat運行卻不生效,最終發現是因為外置tomcat版本問題,出問題的版本是tomcat8.0.xx,而使用tomcat8.5.xx就沒有這個問題了

參考鏈接:https://blog.csdn.net/luohualiushui1/article/details/86596754


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM