中国网站建设网,网站建设加入购买按钮,备案网站建设方案模板,义乌市网络科技有限公司服务端推送
在服务器推送技术中#xff0c;服务器在消息可用后立即主动向客户端发送消息。其中#xff0c;有两种类型的服务器推送#xff1a;SSE和 WebSocket。
SSE#xff08;Server-Send Events#xff09;
SSE 是一种在基于浏览器的 Web 应用程序中仅从服务器向客户…服务端推送
在服务器推送技术中服务器在消息可用后立即主动向客户端发送消息。其中有两种类型的服务器推送SSE和 WebSocket。
SSEServer-Send Events
SSE 是一种在基于浏览器的 Web 应用程序中仅从服务器向客户端发送文本消息的技术。SSE基于 HTTP 协议中的持久连接 具有由 W3C 标准化的网络协议和 EventSource 客户端接口作为 HTML5 标准套件的一部分。
那么在FastAPI中怎么实现呢
下面将介绍其实现过程
pip install asyncio
pip install sse-starlette
代码
import jsonfrom fastapi import FastAPI, Query, Path
import uvicorn
from starlette.requests import Request
import asyncio
from sse_starlette import EventSourceResponseapp FastAPI()app.get(/stream)
async def flush_stream(request: Request):async def event_generator(request: Request):res_str 双天至尊真是一部好的电视剧for idx, word in enumerate(res_str):if await request.is_disconnected():print(连接已中断)breakdata json.dumps({id: idx, message: word}, ensure_asciiFalse)yield dataawait asyncio.sleep(1)return EventSourceResponse(event_generator(request))if __name__ __main__:uvicorn.run(Run:app, host0.0.0.0, port8080)效果