也許這是Flask中的一個問題,在服務器端無法處理斷開連接事件。Python燒瓶,如何檢測SSE客戶端從前端斷開Javascript
在Response類中,有一個名爲「call_on_close」的方法,我們可以在其中添加一個沒有參數的函數,例如, on_close(),當響應對象的close方法被調用時它會被觸發,但是當我在Javascript中從客戶端調用EventSource.close()時,這不會發生。
代碼在服務器端:在客戶端
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
:加卸載處理程序頁面,SSE
$(window).unload(
function() {
sse.close();
}
}
什麼是錯的?
任何意見或解決方案的代碼表示讚賞!
在此先感謝!