zlwu 10 meses atrás
pai
commit
58a3247484
3 arquivos alterados com 17 adições e 4 exclusões
  1. 12 3
      backend/websocket_handler.py
  2. BIN
      frontend/public/Lumi-cap.ico
  3. 5 1
      nginx.conf

+ 12 - 3
backend/websocket_handler.py

@@ -10,6 +10,7 @@ import logging
 import traceback
 from typing import Any, Dict, Optional
 from fastapi import WebSocket
+from starlette.websockets import WebSocketDisconnect
 
 logger = logging.getLogger(__name__)
 
@@ -125,11 +126,19 @@ class WebSocketHandler:
                 
                 # 处理消息
                 await self.handle_message(message_data)
-                
+
+        except WebSocketDisconnect as e:
+            close_code = getattr(e, "code", None)
+            reason = getattr(e, "reason", None)
+            logger.warning(f"[{self.user_id}] ⚠️ WebSocket断开: code={close_code}, reason={reason}")
+
         except Exception as e:
-            pass
+            logger.error(f"[{self.user_id}] ❌ WebSocket异常: {e.__class__.__name__}: {e}")
+            logger.error(traceback.format_exc())
+
         finally:
-            pass
+            close_code = getattr(self.websocket, "close_code", None)
+            logger.info(f"[{self.user_id}] ℹ️ WebSocket连接结束,close_code={close_code}")
     
     async def handle_message(self, message_data: dict):
         """处理接收到的消息"""

BIN
frontend/public/Lumi-cap.ico


+ 5 - 1
nginx.conf

@@ -10,6 +10,9 @@ http {
     include       mime.types;
     default_type  application/octet-stream;
 
+    # 错误日志
+    error_log /var/log/nginx/error.log warn;
+
     # 隐藏 Nginx 版本信息
     server_tokens off;
 
@@ -92,7 +95,8 @@ http {
         ssl_session_timeout 1h;
         ssl_session_tickets off;  # 禁用 session tickets,使用共享缓存
         ssl_protocols TLSv1.2 TLSv1.3;
-        ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
+        ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-
+POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
         ssl_prefer_server_ciphers off;  # TLS 1.3 不需要此选项
         # ssl_dhparam /etc/nginx/cert/dhparam.pem;  # 如果存在 DH 参数文件,取消注释