Có thể đây là vấn đề trong Flask, không có cách nào để xử lý sự kiện ngắt kết nối ở phía máy chủ.Flask Python, cách phát hiện khách hàng SSE ngắt kết nối từ giao diện người dùng Javascript
Trong lớp phản hồi, có một phương thức có tên là "call_on_close", nơi chúng tôi có thể thêm hàm không có đối số, ví dụ: on_close(), nó sẽ được kích hoạt khi phương thức close của đối tượng phản hồi được gọi, nhưng điều này không xảy ra khi tôi gọi EventSource.close() từ phía máy khách trong Javascript.
mã trên phía máy chủ:
from flask import Response
r = Response(stream(), ...)
r.call_on_close(on_close)
return r
def on_close():
print "response is closed!"
def stream():
... # subscribe to redis
for message in pubsub.listen():
....
yield 'data: %s\n\n' % message
về phía khách hàng: thêm xử lý dỡ bỏ trang với SSE
$(window).unload(
function() {
sse.close();
}
}
Bất cứ điều gì là sai?
Bất kỳ đề xuất hoặc giải pháp nào có mã được đánh giá cao!
Cảm ơn trước!