java - 可以通过 WebSocket 传递的最大数据量是多少?

标签 java json websocket java-websocket

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

关于java - 可以通过 WebSocket 传递的最大数据量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32309727/

相关文章:

java - 设置 ArrayList<ArrayList<String>> 的大小/维度

websocket - 创建两个单独的 websocket 连接用于在本地主机上发送和接收

java - 单击我网站上的按钮登录到另一个网站

java - 从pdf中获取斜体行

ios - 如何在 swift3 的 UILabel 中获取 JSON 数据

json - Azure 逻辑应用 : Setting Workflow name dynamically to call a existing logic app(Nested Logic app)

php - 在子域上运行 Ratchet 作为完整的自己的服务以提供自定义 WebSocket

websocket - 嵌入式Undertown同时部署websocket和servlet,不行

java - Java 中的重读文字

c# - JSON 嵌套数组