我是 websockets 的新手,当我试图传递 JSON 时长度大于 8192 ,websocket 立即断开连接。然而JSON长度<= 8191工作正常。

有没有MAX SIZE/ LIMIT可以通过 WebSocket 传递的数据?如果有,尺寸是多少?


我通过将这些行添加到我的 web.xml 来修复错误

<context-param> 
         <param-name>org.apache.tomcat.websocket.textBufferSize</param-name> 
         <param-value>32768</param-value> 
    </context-param> 
    <context-param> 
            <param-name>org.apache.tomcat.websocket.binaryBufferSize</param-name> 
            <param-value>32768</param-value> 
</context-param> 

感谢@Davide Lorenzo MARINO。

请您参考如下方法:

IT 实际上是一个非常大的值,您可能并不担心。

根据 RFC-6455 基本框架,单个帧的最大大小限制为 18,446,744,073,709,551,615 字节(64 位无符号值的最大值)。

尽量让它尽可能少地处理您的要求。

因为问题是在服务器端(tomcat)产生的。检查 tomcat 文档我看到:

The default buffer size for binary messages is 8192 bytes. This may be changed for a web application by setting the servlet context initialization parameter org.apache.tomcat.websocket.binaryBufferSize to the desired value in bytes.

因此您可以通过更新 tomcat 配置文件中的 org.apache.tomcat.websocket.binaryBufferSize 参数来更改它。

有关其他信息,请参阅 tomcat 指南 here


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!