赞
踩
from gevent import monkey monkey.patch_all() #并行 import time from flask import Response, stream_with_context from flask import Flask from gevent.pywsgi import WSGIServer from flask import request app=Flask(__name__) from flask_cors import CORS CORS(app) #解决跨域问题 def predict(): chatbot=[""] mid=''' 一、引言\n1. 背景介绍\n2. 研究意义\n\n二、多旋翼无人机概述\n 1. 多旋翼无人机的定义\n2. 多旋翼无人机的特点\n3. 多旋翼无人机的基本结构\n\n 三、多旋翼无人机控制方法\n1. 手动控制\n2. 遥控控制\n3. 自主控制\n\n 四、多旋翼无人机调度方法\n1. 手动调度\n2. 遥控调度\n3. 自主调度\n\n 五、多旋翼无人机应用实例\n1. 农业领域\n2. 航拍领域\n3. 搜索救援\n 4. 其他应用领域\n\n六、多旋翼无人机的安全问题\n1. 飞行安全隐患\n 2. 数据隐私问题\n3. 人机交互问题\n\n七、结论\n1. 研究总结\n2. 研究局限\n3. 研究展望 ''' s="" for response in mid: s+=response yield [s], [] import json @app.route('/stream',methods=["GET","POST"]) def stream(): kwargs = request.get_data(as_text=True) @stream_with_context def generate(): data_stream = predict() for data in data_stream: print(data) time.sleep(0.1) yield str("data:") + str(data) + "\n\n" #必须保证 前面是“data:” 后面是“\n\n” headers = { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'X-Accel-Buffering': 'no', "Access-Control-Allow-Origin":"*", "Access-Control-Allow-Methods":"GET,POST", "Access-Control-Allow-Headers":"x-requested-with,content-type" } return Response(generate(),mimetype="text/event-stream",headers=headers) #类型event-stream if __name__ == '__main__': http_server = WSGIServer(('0.0.0.0', int(8081)), app) http_server.serve_forever()
测试:
from sseclient import SSEClient
messages = SSEClient('http://127.0.0.1:8081/stream')
for msg in messages:
print(msg.event,"data")
print([msg.data])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。