Files
python-api/app/communication/socketio/namespaces/monitoring_ns.py
2026-03-01 07:44:19 +09:00

33 lines
1.0 KiB
Python

from __future__ import annotations
import structlog
from app.communication.socketio.server import sio
logger = structlog.get_logger("socketio.monitoring")
@sio.on("connect", namespace="/monitoring")
async def monitoring_connect(sid: str, environ: dict) -> None:
logger.info("monitoring_connected", sid=sid)
@sio.on("disconnect", namespace="/monitoring")
async def monitoring_disconnect(sid: str) -> None:
logger.info("monitoring_disconnected", sid=sid)
@sio.on("subscribe_device", namespace="/monitoring")
async def subscribe_device(sid: str, data: dict) -> None:
device_uid = data.get("device_uid")
if device_uid:
await sio.enter_room(sid, f"device:{device_uid}", namespace="/monitoring")
logger.info("subscribed_device", sid=sid, device_uid=device_uid)
@sio.on("unsubscribe_device", namespace="/monitoring")
async def unsubscribe_device(sid: str, data: dict) -> None:
device_uid = data.get("device_uid")
if device_uid:
await sio.leave_room(sid, f"device:{device_uid}", namespace="/monitoring")