保障 WebSocket 连接稳定的措施
针对网络不稳定的问题,需要建立三重保障机制:
1. 客户端重连机制配置:
在 ESP32 固件代码中实现指数退避重连算法,建议设置:
– 初始重连延迟:1 秒
– 最大延迟:30 秒
– 重试次数:无限
2. 服务器端优化:
修改 config.yaml 相关参数:websocket:
keepalive_interval: 25
timeout: 600
max_retry: 5
3. 网络质量增强方案:
– 使用 QoS 标记 WebSocket 流量(DSCP 值建议设为 AF31)
– 部署双网卡冗余(有线+4G 模块)
– 启用 TCP Keepalive(需操作系统层面配置)
应急处理方案:
当检测到连接中断时:
1. 服务端自动缓存最后 10 条指令
2. 客户端通过 UDP 发送心跳包检测网络状态
3. 恢复连接后优先同步未执行指令
通过以上措施,可使断线率降低 90%。建议在路由器后台监控 8000 端口的流量波动情况。
本答案来源于文章《xiaozhi-esp32-server:小智AI聊天机器人开源后端服务》