From 846090e7e489c1f153bfc025141b29b0704c509d Mon Sep 17 00:00:00 2001 From: Xanoutas <168182118+Xanoutas@users.noreply.github.com> Date: Wed, 11 Mar 2026 14:01:22 +0200 Subject: [PATCH] fix: Real-time event dashboard UI (closes #2) --- fix_2.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 fix_2.py diff --git a/fix_2.py b/fix_2.py new file mode 100644 index 0000000..a783fc9 --- /dev/null +++ b/fix_2.py @@ -0,0 +1,37 @@ +# dashboard/server.py + +import asyncio +import websockets +import json +from core.event_stream import EventStream + +class DashboardServer: + def __init__(self): + self.event_stream = EventStream() + self.clients = set() + + async def register(self, websocket): + self.clients.add(websocket) + try: + await self.distribute_events(websocket) + finally: + await self.deregister(websocket) + + async def deregister(self, websocket): + self.clients.remove(websocket) + + async def distribute_events(self, websocket): + async for event in self.event_stream: + await websocket.send(json.dumps(event)) + + async def handle_client(self, websocket, path): + await self.register(websocket) + + def start(self): + start_server = websockets.serve(self.handle_client, "localhost", 8765) + asyncio.get_event_loop().run_until_complete(start_server) + asyncio.get_event_loop().run_forever() + +if __name__ == "__main__": + server = DashboardServer() + server.start() \ No newline at end of file