跳到主要内容

sse请求AI应用

  • SSE 是一种单向流式通信:服务端 → 客户端(单向)
  • SSE请求只支持GET请求,不支持:POST、PUT、DELETE 等
  • SSE 如何实现双向通信:SSE 负责服务器→客户端推送,客户端→服务器通过普通 HTTP POST 请求
  • AI 聊天选 SSE 的原因:AI 输出是单向流(服务器→客户端),SSE 足够且更简单;基于 HTTP 无需额外协议支持;内置重连机制保证稳定性

SSE 模拟双向通信​

  • SSE 下行 + 普通 HTTP 上行
    • 下行:服务端 -> 客户端:SSE 持续推送
    • 上行:客户端 -> 服务端:fetch / POST 单独发请求
bash
客户端
├─ EventSource("/sse") // 接收服务端消息
└─ fetch("/send", ...) // 给服务端发消息

服务端
├─ /sse 持续返回 text/event-stream
└─ /send 接收客户端消息,再转发到对应 SSE 连接

缺点:

  • 不适合高频通信

Streamable HTTP​

对比项SSEStreamable HTTP
本质一种事件流格式一种HTTP 传输模式
响应类型固定 text/event-stream可以是普通 JSON,也可以是 SSE 流
请求方式浏览器原生通常只适合 GET常见支持 POST + GET
灵活性偏单一更灵活
在 MCP 中的位置旧的远程传输方案新的默认传输方案

Streamable替代SSE​

  • Streamable HTTP可以实现SSE的流式响应返回
  • 比SSE更灵活,响应类型支持JSON、流式响应,请求方式支持POST和GET