update
This commit is contained in:
@@ -19,16 +19,26 @@ log = logging.getLogger("events")
|
||||
PUFFER = 16
|
||||
|
||||
_abonnenten: set[asyncio.Queue] = set()
|
||||
# Welche Sitzung hinter einer Verbindung steckt — daraus ergibt sich,
|
||||
# wer gerade online ist: eine offene Seite mit gewähltem Namen
|
||||
_sitzungen: dict[asyncio.Queue, str] = {}
|
||||
|
||||
|
||||
def anmelden():
|
||||
def anmelden(session_id=None):
|
||||
queue = asyncio.Queue(maxsize=PUFFER)
|
||||
_abonnenten.add(queue)
|
||||
if session_id:
|
||||
_sitzungen[queue] = session_id
|
||||
return queue
|
||||
|
||||
|
||||
def abmelden(queue):
|
||||
_abonnenten.discard(queue)
|
||||
_sitzungen.pop(queue, None)
|
||||
|
||||
|
||||
def sitzungen_online():
|
||||
return set(_sitzungen.values())
|
||||
|
||||
|
||||
def anzahl():
|
||||
@@ -60,3 +70,5 @@ async def stream(queue, request):
|
||||
yield ": ping\n\n"
|
||||
finally:
|
||||
abmelden(queue)
|
||||
# Die anderen Seiten sollen den grünen Punkt ausmachen
|
||||
senden("users")
|
||||
|
||||
Reference in New Issue
Block a user