netnr 2024-12-15

StreamingResponse

通过 HTTP 协议,在单个请求中持续传输数据的方式

Server-Sent Events (SSE)

服务器向客户端推送数据的标准化协议,建立在 HTTP 之上

ref https://developer.mozilla.org/zh-CN/docs/Web/API/Server-sent_events/Using_server-sent_events

对比

特性 StreamingResponse Server-Sent Events(SSE)
通信方式 单次请求的持续响应 服务器主动推送,客户端被动接收
数据格式 自定义,灵活 标准化的事件流格式
连接特性 连接在响应完成后关闭 连接持续,服务器可随时推送数据
浏览器支持 需要手动处理数据解析 浏览器原生支持 EventSource 接口
适用场景 大数据量传输,如文件、媒体流 实时数据更新,如通知、消息、行情等

nginx 代理配置

# 禁用缓冲
proxy_buffering off; # 默认启用,须设置 off
proxy_cache off; # 默认禁用,可选

# 超时设置
proxy_read_timeout 360s;
proxy_send_timeout 360s;

# 主机头
proxy_set_header Host $host;

重点 proxy_buffering 设置为 off ,不然不能实时输出

ref https://nginx.org/en/docs/http/ngx_http_proxy_module.html

登录写评论