
文章目录SSESSE和websocket的对比如何测试?流式生成有很多应用场景例如聊天、游戏、ai打字机效果等。实现方式也不只一种如SSE、websocket等。SSESSE(server-send events)(服务器发送事件)。机制并没有那么复杂基于http协议(1.1及以上)就可以实现。1、请求头客户端发起请求时Header 里添加 Accept: text/event-stream2、响应头服务端返回时必须设置以下三个关键响应头Content-Type: text/event-stream #Cache-Control: no-cache # 不缓存实际更应该用no-storeConnection: keep-alive # 告诉客户端(如postman、浏览器等)不要关闭连接3、不关闭连接服务端不主动关闭 TCP 连接而是保持长连接状态持续推送数据4、分块传输利用 HTTP 的 Chunked Transfer Encoding 机制一点一点地发送数据每发一块就 flush 一次确保客户端能实时收到5、消息格式每条消息以 data: 开头以连续两个换行(\n\n)结尾作为消息分隔符本质就是赖着不走的HTTP请求 分块传输 特定文本格式。SSE和websocket的对比特性WebSocketSSE协议自定义 TCP 协议(需Upgrade升级)HTTP通信方向双向(服务器 ↔ 客户端)单向(服务器 → 客户端)复杂度复杂需维护连接生命周期简单无需握手自动重连❌ 需手动实现✅ 浏览器原生支持二进制传输✅ 支持❌ 不支持穿透能力常被企业内网拦截纯 HTTP轻松穿透适用场景在线游戏、协作编辑、音视频信令AI 流式输出、通知推送、股票行情如何测试?用postman等post工具就能测header里面添加Accepttext/event-stream