我是 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