20 lines
557 B
Python
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)
|