Webhook、轮询、WebSocket 与流式响应
根据实时性、成本和复杂度选择通信方式。
- 用自己的话解释“Webhook、轮询、WebSocket 与流式响应”及其核心术语。
- 在真实 AI 产品场景中识别何时应该使用本课方法。
- 完成一份可沉淀进“系统关系图、一次 API 调用与基础 SQL 练习”阶段任务的实践产出。
REAL SCENE
先从一个真实场景开始
支付完成后,外部平台需要通知系统更新订单;报告任务则要在页面持续展示进度;客服聊天希望逐字显示回答。团队笼统要求“实时”,却没说明事件频率、容忍延迟、连接数量与失败补偿,最终用了昂贵复杂的长连接。
PLAIN EXPLANATION
说人话:它到底是什么?
轮询是客户端定时询问状态,简单但会产生空请求和延迟;Webhook 是一个服务在事件发生后回调另一个服务,适合系统间通知但必须验签、去重和补偿;WebSocket 建立双向长连接,适合高频互动;流式响应在一次请求中逐块返回内容,适合生成文本。选择取决于谁知道事件发生、频率、方向、延迟和可靠性,而非追求技术名词。
轮询与渐进刷新
轮询易实现、易穿过网络设施,适合低频短时任务。间隔影响体验与成本,可随等待时间退避;页面不可见时暂停,完成后停止,错误时避免形成请求风暴。
- 定义最大轮询时长
- 失败采用指数退避
- 状态变化后立即更新界面
Webhook 可靠通知
Webhook 由事件源主动发送,接收方应快速确认再异步处理。网络重试会造成重复,因此需签名、时间戳、事件 ID、幂等与重放保护,并提供事件查询作为补偿。
- 验证来源和消息完整性
- 先持久化事件再返回成功
- 失败重试和人工补发可观察
长连接与流式输出
WebSocket 支持客户端与服务端高频双向消息,但连接管理和恢复复杂。生成式回答通常只需服务端向客户端连续发送片段,可使用流式响应,并另行定义完成、错误、取消与重连。
- 心跳和断线重连有上限
- 片段不等于最终已保存结果
- 连接数量与消息顺序需监控
先定义事件方向、频率、延迟和可靠性,再选择通信方式。
所有推送与重试都要考虑验签、去重、顺序和补偿。
实时体验仍需完整的完成、断线、取消与恢复状态。
KEY POINT
这节课最重要的结论
- 为什么重要
- 这决定了听懂工程语言、阅读接口和数据库方案,并判断技术取舍时,团队是否拥有一致、可验证的判断标准。
- 适用边界
- 当问题目标、数据来源或失败成本发生变化时,不要机械套用;先重新确认假设和风险等级。
EXAMPLES
正确案例与常见反例
支付平台用签名 Webhook 发送唯一 eventId,系统先持久化再异步处理,重复事件由幂等拦截,并每日对账补漏。30 秒报告任务使用逐步退避轮询;AI 回答用流式响应,断线后可根据 taskId 读取最终结果。
所有场景都使用 WebSocket,支付结果只依赖一次未验签消息,连接断开就永久丢单。报告页面每秒无限轮询,即使切到后台也不停;AI 流结束后没有完成标记,用户不知道内容是否完整。
“支付回调用 Webhook:校验签名、时间戳和 eventId,入库成功后再 2xx,重复事件幂等,对账负责补漏。报告状态轮询采用退避并在隐藏页暂停;生成文本流必须包含 done、error 和 taskId。”
HANDS-ON
必做实操任务
本节产出:“系统关系图、一次 API 调用与基础 SQL 练习”阶段任务中的《Webhook、轮询、WebSocket 与流式响应》一页实践卡
步骤 1为支付通知、报告进度和聊天生成分别选择通信方式并写出理由。
步骤 2设计 Webhook 的签名、事件 ID、确认、重试、去重和补偿流程。
步骤 3为轮询设置初始间隔、退避、暂停条件、终止条件和错误上限。
步骤 4模拟流式响应中途断线,设计已显示内容、最终状态与恢复路径。
实践结果会自动保存在本机,并进入项目工坊的任务来源。
业务事件:____
谁最先知道事件:____ 发送方:____ 接收方:____
方向:单向 / 双向 频率:____ 允许延迟:____
可靠性与丢失成本:____
候选:轮询____ Webhook____ WebSocket____ 流式____
最终选择与理由:____
身份与验签:____
事件 ID / taskId:____
去重与顺序:____
断线与重试:____
补偿或对账:____
用户完成/失败/取消状态:____
监控:____CHECKLIST
产品经理工作检查表
MASTERY QUIZ
掌握测验
达到 60% 即可完成本课。
INTERVIEW
常见面试题
展开参考回答
先看谁掌握事件、通信方向、事件频率、可接受延迟、连接规模和丢失成本。低频状态可轮询,系统间事件常用 Webhook,高频双向协作用 WebSocket,单次生成渐进展示用流式响应。无论选哪种,都要设计身份、验签、幂等、重试、顺序、完成、断线和补偿。
RECAP & FURTHER READING
重点回顾、延伸阅读与下一步
- 1
围绕“Webhook、轮询、WebSocket 与流式响应”继续阅读:查阅对应技术的官方入门文档,重点核对输入输出、失败方式、权限边界与可观测性。
- 2
用“Webhook、WebSocket、流式响应”作为检索词,分别写下一条定义、一条适用边界和一个反例。
- 3
对照本课正确案例与反例,寻找一个公开案例并记录其中可复用的判断与不能照搬的条件。