Ich versuche Server Push in meinem Flask-Projekt nach this tutorial zu implementieren.text/event-stream als Download erkannt
Ich habe alles ohne Fehler eingestellt, aber wenn ich auf die Seite/stream gehe, erkennt Firefox es als Datei und versucht es herunterzuladen. In Safari werden nur die gesendeten Daten ausgedruckt. Ich habe versucht, den Code an eine einfachere Implementierung anzupassen, bei der ein Thread nur einige Daten pro Sekunde liefert, jedoch die gleichen Ergebnisse liefert.
Mein Ziel ist, dass jedes Mal, wenn ein Python-Skript einen Punkt in einer Schleife erreicht, eine Fortschrittsleiste auf der Weboberfläche aktualisiert wird.
Jede Hilfe mit diesem wäre großartig. Vielen Dank.
Edit:
app.py
from flask import Flask, render_template, request, Response
app = Flask(__name__)
def event_stream():
event = "Hello!"
yield 'data: %s\n\n' % event
@app.route('/stream')
def stream():
return Response(event_stream(), mimetype="text/event-stream")
if __name__ == "__main__":
app.debug = True
app.run(threaded=True)
index.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
var source = new EventSource('/stream');
source.onmessage = function (event) {
alert(event.data);
};
</script>
</head>
<body>
<p>Stream page</p>
</body>
</html>
Können Sie hinzufügen reduziertes Beispiel hier, das das Problem demonstriert? –
Ich habe ein kleines Beispiel hinzugefügt. – DJDMorrison