From 5bb739bb2cfad9552b138517bd9be987955dfcb2 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Aug 2025 19:35:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/core/websocket/client.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/core/websocket/client.py b/app/core/websocket/client.py index ac0a04b..ec659d7 100644 --- a/app/core/websocket/client.py +++ b/app/core/websocket/client.py @@ -193,12 +193,16 @@ class WebSocketClient: 单一职责:只负责接收数据并调用处理器,不处理业务逻辑 """ + logger.info(f"WebSocket客户端 {self.name} 开始接收消息循环") try: while self.is_connected: try: + logger.debug(f"WebSocket客户端 {self.name} 等待接收消息...") message = await self._websocket.recv() self._last_message_at = datetime.now() + logger.info(f"WebSocket客户端 {self.name} 收到原始消息: {message}") + # 调用消息处理器 await self._handle_message(message) @@ -213,6 +217,8 @@ class WebSocketClient: logger.info(f"WebSocket客户端 {self.name} 接收任务已取消") except Exception as e: logger.error(f"WebSocket客户端 {self.name} 接收任务异常: {e}") + finally: + logger.info(f"WebSocket客户端 {self.name} 接收消息循环结束") async def _handle_message(self, message: Any): """处理接收到的消息 @@ -220,33 +226,42 @@ class WebSocketClient: 单一职责:只负责调用注册的处理器,不处理业务逻辑 """ try: + logger.debug(f"WebSocket客户端 {self.name} 开始处理消息: {message}") + # 尝试解析JSON消息 if isinstance(message, str): try: parsed_message = json.loads(message) message_type = parsed_message.get("type", "data") + logger.debug(f"WebSocket客户端 {self.name} 解析JSON消息成功: type={message_type}") except json.JSONDecodeError: message_type = "raw" parsed_message = {"type": "raw", "data": message} + logger.debug(f"WebSocket客户端 {self.name} JSON解析失败,作为raw消息处理") else: message_type = "raw" parsed_message = {"type": "raw", "data": message} + logger.debug(f"WebSocket客户端 {self.name} 非字符串消息,作为raw消息处理") # 调用对应的处理器 handler = self._message_handlers.get(message_type) if handler: + logger.debug(f"WebSocket客户端 {self.name} 调用消息处理器: {message_type}") if asyncio.iscoroutinefunction(handler): await handler(parsed_message) else: handler(parsed_message) + logger.debug(f"WebSocket客户端 {self.name} 消息处理器调用完成: {message_type}") else: # 调用通配符处理器 wildcard_handler = self._message_handlers.get("*") if wildcard_handler: + logger.debug(f"WebSocket客户端 {self.name} 调用通配符处理器") if asyncio.iscoroutinefunction(wildcard_handler): await wildcard_handler(parsed_message) else: wildcard_handler(parsed_message) + logger.debug(f"WebSocket客户端 {self.name} 通配符处理器调用完成") else: logger.debug(f"WebSocket客户端 {self.name} 收到未处理的消息类型: {message_type}")