Skip to content
阅读进度

Agent 的 WebSocket 长连接管理如何设计? ​

返回 Agent 工程 目录

标准回答 ​

把长连接与任务生命周期分开:连接用于事件传输,任务状态保存到可恢复存储。连接要鉴权、心跳、空闲超时和背压;事件带任务 ID 与递增序号,重连按游标补发并去重。断网不自动等于取消任务,取消应发送明确请求并获得状态确认。

通俗例子 ​

用户手机断网后重连,凭任务 ID 继续查看报告进度;不能一断连接就丢失任务,也不能重连就重复新建同一任务。

深入解释 ​

**连接身份与任务身份不同:**WebSocket 连接会断开重建,但业务任务可能仍在执行。用任务 ID 和消息序号关联进度,不能仅以某一条连接对象作为任务存在的依据。

**重连后怎么恢复:**重新认证、恢复订阅,再根据协议查询任务状态或补收缺失消息。控制重试与去重,避免客户端重连就启动第二个相同任务。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。