Эх сурвалжийг харах

debug: add verbose error logging to chat WebSocket

unknown 2 сар өмнө
parent
commit
9155a76207

+ 6 - 0
backend/main.py

@@ -123,21 +123,27 @@ async def ws_global(websocket: WebSocket, token: str = Query(...)):
 async def ws_chat(websocket: WebSocket, token: str = Query(...), order_id: int = Query(...)):
     payload = auth_utils.decode_token(token)
     if not payload:
+        print(f"DEBUG: Chat WS Auth failed for Order #{order_id}")
         await websocket.close(code=4001)
         return
     role = payload.get("role")
     user_id = payload.get("id")
+    print(f"DEBUG: Chat WS connection attempt for Order #{order_id} from User #{user_id} (Role: {role})")
+    
     if role != 'admin':
         user_info = db.execute_query("SELECT can_chat FROM users WHERE id = %s", (user_id,))
         if not user_info or not user_info[0]['can_chat']:
+            print(f"DEBUG: Chat WS rejected: user cannot chat")
             await websocket.close(code=4003)
             return
 
     order = db.execute_query("SELECT user_id FROM orders WHERE id = %s", (order_id,))
     if not order:
+        print(f"DEBUG: Chat WS rejected: order #{order_id} not found")
         await websocket.close(code=4004)
         return
     if role != 'admin' and order[0]['user_id'] != user_id:
+        print(f"DEBUG: Chat WS rejected: not authorized for this order")
         await websocket.close(code=4003)
         return
     

+ 4 - 2
src/components/OrderChat.vue

@@ -190,13 +190,15 @@ function connectWebSocket() {
     }
   };
 
-  ws.onclose = () => {
+  ws.onclose = (event) => {
+    console.warn(`DEBUG: OrderChat WS closed for Order #${props.orderId}. Code: ${event.code}, Reason: ${event.reason}`);
     wsConnected.value = false;
     // Auto-reconnect after 3 seconds
     reconnectTimer = setTimeout(() => connectWebSocket(), 3000);
   };
 
-  ws.onerror = () => {
+  ws.onerror = (error) => {
+    console.error(`DEBUG: OrderChat WS error for Order #${props.orderId}:`, error);
     ws?.close();
   };
 }