diff --git a/src/astrbot_sdk/runtime/rpc/server/stdio.py b/src/astrbot_sdk/runtime/rpc/server/stdio.py index 22115ba78..004fd7e48 100644 --- a/src/astrbot_sdk/runtime/rpc/server/stdio.py +++ b/src/astrbot_sdk/runtime/rpc/server/stdio.py @@ -110,7 +110,7 @@ class StdioServer(JSONRPCServer): try: # Parse JSON-RPC message message = self._parse_message(line) - await self._handle_message(message) + asyncio.create_task(self._handle_message(message)) except Exception as e: logger.error(f"Failed to parse message: {e}, raw line: {line}") diff --git a/src/astrbot_sdk/runtime/rpc/server/websockets.py b/src/astrbot_sdk/runtime/rpc/server/websockets.py index 5b9a8bf2c..7da6f3cf9 100644 --- a/src/astrbot_sdk/runtime/rpc/server/websockets.py +++ b/src/astrbot_sdk/runtime/rpc/server/websockets.py @@ -125,7 +125,7 @@ class WebSocketServer(JSONRPCServer): if msg.type == aiohttp.WSMsgType.TEXT: try: message = self._parse_message(msg.data) - await self._handle_message(message) + asyncio.create_task(self._handle_message(message)) except Exception as e: logger.error(f"Failed to parse message: {e}, raw data: {msg.data}") @@ -133,7 +133,7 @@ class WebSocketServer(JSONRPCServer): try: text = msg.data.decode("utf-8") message = self._parse_message(text) - await self._handle_message(message) + asyncio.create_task(self._handle_message(message)) except Exception as e: logger.error(f"Failed to parse binary message: {e}")