unregistering an observer when the user closes the

browser
This commit is contained in:
Karma Riuk
2025-05-20 14:57:33 +02:00
parent d302d585c7
commit 12b3e5cfe5

View File

@ -2,7 +2,7 @@
from flask import Flask, request
from flask_cors import CORS
from flask_socketio import SocketIO
from utils.observer import Status, Subject
from utils.observer import Status, Subject, SocketObserver
from routes.index import router as index_router
from routes.answers import QUEUE_MANAGER, router as answers_router
from routes.datasets import router as datasets_router
@ -49,6 +49,16 @@ def init_socketio(app):
def on_connect():
print('Websocket client connected')
@socketio.on('disconnect')
def on_disconnect():
print('Websocket client disconnected')
sid = request.sid # type: ignore
if sid in SocketObserver.socket2obs:
obs = SocketObserver.socket2obs.pop(sid)
if obs in Subject.obs2subject:
subject = Subject.obs2subject.pop(obs)
subject.unregisterObserver(obs)
@socketio.on('get_queue_position')
def on_get_queue_position(data):
sid = request.sid # type: ignore