feat: Live-Metriken via WebSockets (Phase 3)

This commit is contained in:
Hitonabi
2026-06-20 23:30:58 +02:00
parent ee8ec10119
commit d0ed4e4c7e
3 changed files with 36 additions and 8 deletions
+14 -1
View File
@@ -4,9 +4,10 @@ Greift lokal auf psutil und sysfs zu.
"""
from pathlib import Path
import asyncio
import psutil
from fastapi import APIRouter, Depends
from fastapi import APIRouter, Depends, WebSocket, WebSocketDisconnect
from auth import auth
router = APIRouter(prefix="/api/system", dependencies=[Depends(auth)])
@@ -89,3 +90,15 @@ def system_status():
},
"gpu_temp": temps["gpu"]
}
@router.websocket("/stream")
async def system_stream(websocket: WebSocket):
await websocket.accept()
try:
while True:
# Sende Live-Daten alle 500ms
data = system_status()
await websocket.send_json(data)
await asyncio.sleep(0.5)
except WebSocketDisconnect:
pass