From f1626a97f59d14da8bfe587c4d2c09913e500068 Mon Sep 17 00:00:00 2001 From: liuwei Date: Mon, 2 Feb 2026 10:38:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/gscore_client.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/utils/gscore_client.py b/utils/gscore_client.py index 87cea4a..082a39f 100644 --- a/utils/gscore_client.py +++ b/utils/gscore_client.py @@ -10,13 +10,12 @@ class GsCoreClient: def __init__(self): self._ws = None self._url: str = "" - self._token: str = "" # 新增 token 存储 + self._token: str = "" self._recv_task: Optional[asyncio.Task] = None self._message_handler: Optional[Callable[[dict], Awaitable[None]]] = None self._is_closing = False def configure(self, url: str, handler: Callable[[dict], Awaitable[None]], token: str = "liuwei"): - """配置连接信息,默认 token 为 liuwei""" self._url = url self._message_handler = handler self._token = token @@ -30,17 +29,19 @@ class GsCoreClient: try: logger.info(f"[GsCoreClient] 正在连接早柚核心: {self._url}") - # 在 Header 中携带 Token 进行鉴权 + # 构造 Header headers = { "Authorization": f"Bearer {self._token}", - "Token": self._token # 兼容某些直接校验 Token 字段的服务端 + "Token": self._token } + # 修复点:确保 extra_headers 正确传递 self._ws = await websockets.connect( self._url, - max_size=10 ** 7, - extra_headers=headers + extra_headers=headers, + max_size=10 ** 7 ) + self._is_closing = False if self._recv_task and not self._recv_task.done(): @@ -51,6 +52,7 @@ class GsCoreClient: logger.success("[GsCoreClient] 连接成功且鉴权通过") return True except Exception as e: + # 如果依然报错,可能是 websockets 版本过旧,建议升级: pip install --upgrade websockets logger.error(f"[GsCoreClient] 连接或鉴权失败: {e}") self._ws = None return False @@ -80,7 +82,7 @@ class GsCoreClient: except Exception as e: logger.exception(f"[GsCoreClient] 接收消息异常: {e}") break - await asyncio.sleep(0) + await asyncio.sleep(0.1) if not self._is_closing: self._ws = None