优化一下
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user