feat: Live-Metriken via WebSockets (Phase 3)
This commit is contained in:
+14
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user