Python烧瓶流没有更新

时间:2018-01-25 15:08:28

标签: python flask event-sourcing

我试图传输一些数据,以更新我网站上的进度条。为了测试我运行这个:

@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

为什么它不会直播,但只有当我停止使用烧瓶应用程序?

0 个答案:

没有答案