我试图传输一些数据,以更新我网站上的进度条。为了测试我运行这个:
@application.route('/api/stream', methods=['GET', 'POST'])
def stream():
def event_stream():
n = 0
while True:
yield "data: %s\n\n" % n
n += 1
time.sleep(1)
return Response(event_stream(), mimetype='text/event-stream')
@application.route('/api/output')
def index():
return """
<!DOCTYPE html>
<html>
<head>
<script>
if(typeof(EventSource)!=="undefined") {
var source=new EventSource("/api/stream");
source.onmessage=function(event) {
document.getElementById("result").innerHTML+=event.data + "<br>";
};
source.update=function(event) {
document.getElementById("result").innerHTML+=event.data + "<br>";
};
} else {
document.getElementById("result").innerHTML="Sorry, your browser does not support server-sent events...";
}
</script>
</head>
<body>
<h1>Data</h1>
<div id="result"></div>
</body>
</html>
"""
在我的网站上我有帖子功能:
$.post("//mywebsite.com/api/stream", {"some": 'ss'}, function(data) {
alert(data)
})
当我运行此POST(上图)时,我打开mywebsite.com/api/output并仅显示:
数据
但过了一段时间我停止了我的烧瓶应用程序,在网站上我得到了:
Data
0
1
2
为什么它不会直播,但只有当我停止使用烧瓶应用程序?