[patch] 修改逻辑: 在用户误触或开了多个GUI程序的时候不能同时建立多个连接 确保一个账号只能建立一个与后端的连接 友好提示的集成review

This commit is contained in:
2025-10-13 10:27:15 +08:00
parent 7ef6b36ff5
commit f6c55d4185
4 changed files with 231 additions and 139 deletions

View File

@@ -54,10 +54,11 @@ class WebSocketManager:
'error': None,
'platform_connected': None,
'token_error': None,
'disconnect': None, # 新增:被踢下线回调
}
def set_callbacks(self, log: Callable = None, success: Callable = None, error: Callable = None,
platform_connected: Callable = None, token_error: Callable = None):
platform_connected: Callable = None, token_error: Callable = None, disconnect: Callable = None):
"""设置回调函数"""
if log:
self.callbacks['log'] = log
@@ -69,6 +70,8 @@ class WebSocketManager:
self.callbacks['platform_connected'] = platform_connected
if token_error:
self.callbacks['token_error'] = token_error
if disconnect:
self.callbacks['disconnect'] = disconnect
def _log(self, message: str, level: str = "INFO"):
"""内部日志方法"""
@@ -146,8 +149,13 @@ class WebSocketManager:
if self.callbacks['token_error']:
self.callbacks['token_error'](error_content)
def _on_disconnect(disconnect_msg: str):
self._log(f"被踢下线: {disconnect_msg}", "WARNING")
if self.callbacks['disconnect']:
self.callbacks['disconnect'](disconnect_msg)
backend.set_callbacks(success=_on_backend_success, login=_on_backend_login,
token_error=_on_token_error)
token_error=_on_token_error, disconnect=_on_disconnect)
if not backend.is_connected:
backend.connect()
@@ -182,7 +190,13 @@ class WebSocketManager:
if self.callbacks['token_error']:
self.callbacks['token_error'](error_content)
backend.set_callbacks(login=_on_backend_login, success=_on_backend_success, token_error=_on_token_error)
def _on_disconnect(disconnect_msg: str):
self._log(f"被踢下线: {disconnect_msg}", "ERROR")
if self.callbacks['disconnect']:
self.callbacks['disconnect'](disconnect_msg)
backend.set_callbacks(login=_on_backend_login, success=_on_backend_success,
token_error=_on_token_error, disconnect=_on_disconnect)
backend.connect()
set_backend_client(backend)