ClipCascade 接收限额
本页说明同步接收路径的资源预算与兼容边界。使用方法见剪贴板同步。
在组装消息前限制帧与分片
专用 WebSocket 传输层先检查解密后的帧头,再允许 Okio 将数据交给 OkHttp 的消息组装器。 单帧长度和同一消息的累计分片长度均受限制;ping/pong 不会重置消息预算。 服务端掩码、保留标志、非法长度、非法控制帧及压缩消息均被拒绝。
HTTP 升级响应头上限为 64 KiB。普通登录使用自己的 HTTP 客户端;升级连接使用独立的 HTTP/1.1 连接池,不复用空闲连接。
堆预算
默认的解码后载荷上限为:
text
min(32 MiB, Java 最大堆 / 32)该预算为输入法与界面预留一半堆空间,在另一半中按 16 倍余量估算传输、UTF-16、Base64、JSON 和加密过程的副本。 线上消息上限还计入两次 Base64 扩张以及已有的元数据、头部余量。发送队列和编解码器自身的检查继续生效。
这是保守的分配预算;应用堆已经接近耗尽时,不能据此保证任意合规消息仍能成功处理。
服务端与代理兼容性
- 保留普通 WS/WSS、Cookie、默认的证书与主机名校验及 SNI;TLS 通过公开 socket API 包装解密后的提供方数据流。
- 不协商或接受压缩;服务端必须支持未压缩的 WebSocket 消息。
- 配置最终升级地址,该地址必须直接返回 HTTP 101。WebSocket 不跟随重定向;普通登录 HTTP 仍使用自己的重定向策略。
- 明文 WS 经 SOCKS 代理时,会在发出升级请求前拒绝连接,因为 OkHttp 在此路径绕过
SocketFactory创建原始 socket。WSS 经 SOCKS 仍受保护;明文 WS 经 HTTP 代理仍受支持。不会静默绕过已配置的代理。 - 15 秒调用超时只约束升级建连;升级成功后 OkHttp 退出该超时。空闲 WebSocket 读取没有此调用期限,STOMP
CONNECTED仍有独立期限。
验证范围
测试覆盖真实 WS/TLS socket、分片 UTF-8、恶意长度声明、控制帧、压缩、Cookie/SNI、证书和主机名失败以及代理选择。 独立的 64 MiB JVM 在关闭紧凑字符串后,无需读取消息正文即可拒绝 1 GiB 声明,并通过真实 OkHttp 回调接收正常的 4 MiB 消息。 采样堆值仅描述该 JVM 夹具,不能作为 Android 整机或应用峰值。
固定提交、原始失败与回归统计见WebSocket 接收审计。