+
83
-

回答

检测GeneratorExit异常捕获来判断客户端中断连接,然后再中断与服务端的链接

from flask import Response
import time

@app.route('/stream')
def stream():
    def generate():
        try:
            while True:
                yield "data\n"
                time.sleep(1)
        except GeneratorExit:
            print("Client disconnected")
            # 清理资源
            raise StopIteration

    return Response(generate(), mimetype='text/plain')

网友回复

我知道答案,我要回答