feat: add WebSocket router for real-time broadcast updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-15 09:05:18 +00:00
parent 1f13170ba1
commit 2bd7cd9102

30
backend/routers/ws.py Normal file
View File

@@ -0,0 +1,30 @@
import asyncio
import json
from fastapi import APIRouter, WebSocket, WebSocketDisconnect
router = APIRouter()
connected_clients: list[WebSocket] = []
@router.websocket("/ws")
async def websocket_endpoint(ws: WebSocket):
await ws.accept()
connected_clients.append(ws)
try:
while True:
await ws.receive_text()
except WebSocketDisconnect:
connected_clients.remove(ws)
async def broadcast(event_type: str, data: dict):
message = json.dumps({"type": event_type, "data": data})
disconnected = []
for ws in connected_clients:
try:
await ws.send_text(message)
except Exception:
disconnected.append(ws)
for ws in disconnected:
connected_clients.remove(ws)