You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PICO W/MicroPython WebSocket客户端无法与PHP服务器正常通信

问题:MicroPython uwebsockets客户端发送帧拆分导致PHP WebSocket服务器解码失败

问题现象

  • 自研PHP-CLI WebSocket服务器,可正常兼容Android、树莓派C程序、PHP网页客户端,连接认证与通信均无异常
  • 基于PICO W运行MicroPython,使用danni/uwebsockets库开发客户端时,握手成功后发送AUTH消息,服务器端出现unseal解码失败、JSON解析错误
  • 排查发现AUTH消息的数据被拆分为多段传输

原因定位

问题根源在于danni/uwebsockets库的write_frame函数采用多次写入socket的实现,将WebSocket帧的帧头、掩码、数据分开发送,破坏了单帧数据的完整性。而PHP服务器的解码逻辑依赖完整的单帧数据,分段传输后无法完成正确的unseal解码与JSON解析。

解决方法

修改write_frame函数,先将帧头、掩码、数据拼接为完整的字节流,再一次性写入socket,确保整个WebSocket帧作为一个完整单元发送,问题即可解决。

内容的提问来源于stack exchange,提问作者Ryan Barrett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:05:54