修复回消息

This commit is contained in:
jjz
2025-09-26 15:38:23 +08:00
parent 13b30c6f75
commit 7f9894908d
2 changed files with 31 additions and 19 deletions

View File

@@ -71,9 +71,7 @@ class WebSocketManager:
def connect_backend(self, token: str) -> bool:
"""连接后端WebSocket"""
try:
# 🔥 重置清理标记,准备下次重连检测
if hasattr(self, '_cleared'):
delattr(self, '_cleared')
# 1 保存token到配置
try:
@@ -147,12 +145,13 @@ class WebSocketManager:
def _handle_platform_login(self, platform_name: str, store_id: str, cookies: str):
"""处理平台登录请求"""
try:
# 🔥 检查并清理旧连接(重连后首次登录时)
if not hasattr(self, '_cleared') and self.platform_listeners:
self._log(f"🔄 检测到后端重连后首次登录,清理 {len(self.platform_listeners)} 个旧连接", "INFO")
self.platform_listeners.clear()
self.connected_platforms.clear()
self._cleared = True
# 🔥 检查并清理当前店铺的旧连接
store_key_pattern = f":{store_id}" # 匹配 "平台名:store_id" 格式
keys_to_remove = [key for key in self.platform_listeners.keys() if key.endswith(store_key_pattern)]
if keys_to_remove:
self._log(f"🔄 检测到店铺 {store_id} 重连,清理 {len(keys_to_remove)} 个旧连接", "INFO")
for key in keys_to_remove:
self.platform_listeners.pop(key, None)
# 平台名称映射
platform_map = {