mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-10-18 21:47:39 +02:00
Fixed websocket bug
This commit is contained in:
@@ -1,16 +1,19 @@
|
||||
import logging
|
||||
from fastapi import APIRouter, WebSocket, WebSocketDisconnect
|
||||
|
||||
from backend.app.core.websocket import ws_manager
|
||||
from backend.app.services.printer_manager import printer_manager, printer_state_to_dict
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.websocket("/ws")
|
||||
async def websocket_endpoint(websocket: WebSocket):
|
||||
"""WebSocket endpoint for real-time updates."""
|
||||
logger.info("WebSocket client connecting...")
|
||||
await ws_manager.connect(websocket)
|
||||
logger.info("WebSocket client connected")
|
||||
|
||||
try:
|
||||
# Send initial status of all printers
|
||||
@@ -21,6 +24,7 @@ async def websocket_endpoint(websocket: WebSocket):
|
||||
"printer_id": printer_id,
|
||||
"data": printer_state_to_dict(state),
|
||||
})
|
||||
logger.info(f"Sent initial status for {len(statuses)} printers")
|
||||
|
||||
# Keep connection alive and handle incoming messages
|
||||
while True:
|
||||
@@ -43,6 +47,8 @@ async def websocket_endpoint(websocket: WebSocket):
|
||||
})
|
||||
|
||||
except WebSocketDisconnect:
|
||||
logger.info("WebSocket client disconnected normally")
|
||||
await ws_manager.disconnect(websocket)
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
logger.error(f"WebSocket error: {e}", exc_info=True)
|
||||
await ws_manager.disconnect(websocket)
|
||||
|
||||
Reference in New Issue
Block a user