HTTP SSE简介

  • HTTP SSE(Server-Sent Events)是一种基于HTTP协议的服务器推送技术,允许服务器通过一个持久的HTTP连接将事件推送给客户端。它与WebSockets类似,但相对于WebSockets更为简单且轻量级。

  • 使用SSE,客户端可以通过向服务器发送一个简单的HTTP请求来订阅事件流。一旦订阅成功,服务器可以将事件推送给客户端,而客户端无需发送任何请求就可以收到这些事件。与轮询和长轮询不同,SSE允许服务器将事件实时推送给客户端,因此可以实现更快速的实时通信。

  • SSE使用纯文本数据格式,并且易于理解和使用。它通常用于实时通知、实时数据更新、在线聊天和其他需要实时数据传输的应用程序。

Nginx配置SSE

  1. 编辑nginx目录下的mime.types文件,加入以下mime类型
1
text/event-stream                     sse;
  1. 给流式api加入以下请求头
1
2
3
4
5
6
7
8
9
10
11
location /{
proxy_pass http://ai; # 此处根据自己实际情况修改
}
location /api/chat-stream {
add_header Content-Type text/event-stream;
add_header Cache-Control no-cache;
keepalive_timeout 300s;
expires -1;
proxy_buffering off;
proxy_pass http://ai; # 此处根据自己实际情况修改
}