我想做一個實時可視化,其中我有一個容器應用程序將SSE發送給HTML,然後做它的東西。可視化工作完全正常。我對上證所感到困惑。有一個系統在'/ data'處ping我的應用程序來切換數據。然後我想在事件流中轉移到vis。使用SSE實時傳遞來自其他API的數據
import time, json
from flask import Flask, request, Response, render_template
app =Flask(__name__)
def data_stream(data):
if data:
yield 'data: {}\n\n'.format(json.dumps(data))
else:
yield 'data: {}\n\n'.format(json.dumps({'data': [{'lat':0, 'lg':0}]}))
@app.route('/data', methods =['GET','POST'])
def collect_data():
data = {"data": [request.get_json()]}
data_stream(data)
return 'asd'
@app.route('/my_event_source', methods =['GET', 'POST'])
def sse_request():
return Response(data_stream(None), mimetype='text/event-stream')
@app.route('/')
def page():
return render_template('map_vis.html')
if __name__ == '__main__':
data2 = []
app.debug =True
app.run('0.0.0.0', 8081)
我無法想出一個辦法給data_stream功能傳遞給反應,因爲到現在爲止它是簡單地調用data_stream(無)只即我越來越{'lat':0, 'lg':0}
響應。
不確定你期望在這裏發生什麼。即使您使用正確的方法來傳輸響應,您的發生器也只會產生一個值*無論如何*。另外,請求之間沒有狀態,所以你不能從一個請求中調用一個生成器,並將它保存到下一個請求中。 – davidism