Flask流式传输在我的机器上不起作用

2 投票
1 回答
1141 浏览
提问于 2025-04-17 21:18

这段内容和这个问题有关。

我正在尝试使用Flask的流式传输功能,但遇到了一些困难。奇怪的是,我的示例在其他任何机器上都能正常工作,唯独在我自己的机器上不行。我现在使用的是Flask 0.10.1、Werkzeug 0.9.4和Python 2.7.6。我已经重新安装了Flask和Werkzeug,但问题依旧。如果有人能给我一些调试的建议,我将非常感激。

我遇到的问题是,在流打开的情况下,数据并没有发送到客户端,而是等到流关闭后才发送(比如在下面的示例中,当生成器函数返回时)。

#!/usr/bin/env python

from flask import Flask, Response
from time import sleep

def stream():
    n = 10
    while n > 0:
        yield "data: hi\n\n"
        sleep(0.5)
        n = n - 1

app = Flask(__name__)

@app.route("/events")
def streamSessionEvents():
    return Response(
        stream(),
        mimetype="text/event-stream"
    )

#...also has a route to output html/js client to consume the above

app.run(threaded=True)

1 个回答

0

最近我又看了一下这个问题,确实是病毒扫描软件在干扰我的网络流量。

我使用的是Sophos这个软件,发现如果我把运行我Flask应用的机器地址加到病毒扫描软件的“允许网站”列表中,那么我的SSE事件就能正常接收了。

撰写回答