用http方式实现websocket,如chatGPT时时打字效果,原生方式:fetch+sse+post
创始人
2024-11-10 03:40:44
0

用http方式实现websocket,如chatGPT时时打字效果,原生方式:fetch+sse+post

fetch实现stream、原生fetch+sse+post

fetch 本身不直接支持流式输出,但你可以使用 ReadableStream 和 TextDecoder 等 Web Streams API 来实现类似的效果。

后端:比如python, php, java 等等都行...   核心是前端,在下面会有完整展示

from fastapi import FastAPI, Response from fastapi.responses import StreamingResponse import json import time from fastapi.middleware.cors import CORSMiddleware #解决跨域 from fastapi import FastAPI, File, UploadFile,Form,Request # from sse_starlette.sse import EventSourceResponse   app = FastAPI()   # 假设这是你想按事件流形式发送的JSON数据 data = {     "messages": [         {"text": "Hello, 1!", "timestamp": "2021-01-01T12:00:00"},         {"text": "Hello, 2!", "timestamp": "2021-01-02T12:00:01"},         {"text": "Hello, 3!", "timestamp": "2021-01-02T12:00:02"},     ] }  def generate_json_stream(data):     # 分割JSON数据,并逐个发送     for message in data["messages"]:         json_str = json.dumps(message)         yield json_str.encode("utf-8") #发送当前值给前端         time.sleep(1)  # 模拟延时   # 配置 CORSMiddleware 跨域 app.add_middleware(     CORSMiddleware,     allow_origins=["*"],        # 允许访问的源     allow_credentials=True,     # 支持 cookie     allow_methods=["*"],        # 允许使用的请求方法     allow_headers=["*"]         # 允许携带的 Headers )  @app.post("/stream-json") async def stream_json( request: Request,foo: str = Form(default='') ):            # 获取json         json_data = await request.json()     getHeader = request.headers     print('----1-----',json_data,getHeader)      # return EventSourceResponse(generate_json_stream(data), media_type="text/event-stream")     return StreamingResponse(generate_json_stream(data), media_type="text/event-stream")    if __name__ == "__main__":     import uvicorn     uvicorn.run(app, host="0.0.0.0", port=16887) 

核心是前端:

     原生fetch+sse+post       

相关内容

热门资讯

我来教教大家!微扑克辅助挂多功... 我来教教大家!微扑克辅助挂多功能透视工具,切实真的有挂(有挂分析)1、微扑克免费脚本咨询教程、微扑克...
今日科普!德普之星辅助挂多功能... 今日科普!德普之星辅助挂多功能透视工具,原来是有挂(有挂教程)1、进入到德普之星是否有挂之后,能看到...
玩家必看教程!德普之星辅助挂多... 玩家必看教程!德普之星辅助挂多功能透视工具,好像真的有挂(真的有挂)1)德普之星辅助插件:进一步探索...
玩家必备教程!德扑圈辅助挂多功... 玩家必备教程!德扑圈辅助挂多功能透视工具,一直真的是有挂(果真有挂)1、完成德扑圈有辅助插件,帮助玩...
分享给玩家!德普之星辅助挂多功... 分享给玩家!德普之星辅助挂多功能透视工具,一直存在有挂(有挂技巧)德普之星是不是有人用挂微扑克wpk...
实测揭晓!德扑圈辅助挂多功能透... 实测揭晓!德扑圈辅助挂多功能透视工具,总是是真的有挂(详细教程)1、超多福利:超高返利,海量正版游戏...
玩家必备科技!红龙poker辅... 玩家必备科技!红龙poker辅助挂多功能透视工具,果然真的有挂(有挂秘籍)1)红龙poker免费钻石...
盘点一款!智星德州扑克辅助挂多... 盘点一款!智星德州扑克辅助挂多功能透视工具,真是真的有挂(存在有挂)1、智星德州扑克脚本辅助下载、智...
记者发布!智星菠萝德州辅助挂多... 记者发布!智星菠萝德州辅助挂多功能透视工具,本来存在有挂(今日头条)1、上手简单,内置详细流程视频教...
科技通报!德扑之星辅助挂多功能... 科技通报!德扑之星辅助挂多功能透视工具,一贯是有挂(竟然有挂)德扑之星辅助器是一种具有地方特色的麻将...