Files
camera-viewer/backend/routes/ws_routes.py

20 lines
557 B
Python

from fastapi import APIRouter, WebSocket, WebSocketDisconnect
from mqtt_bridge import register_ws_client, unregister_ws_client
router = APIRouter()
@router.websocket("/api/ws/events")
async def websocket_events(ws: WebSocket):
await ws.accept()
register_ws_client(ws)
try:
while True:
# Keep connection alive, handle client messages if needed
data = await ws.receive_text()
# Client can send ping/keepalive
except WebSocketDisconnect:
pass
finally:
unregister_ws_client(ws)