实现更新版本管理
This commit is contained in:
@@ -31,7 +31,6 @@ class BackendClient:
|
||||
self.success_callback: Optional[Callable] = None # 新增:后端连接成功回调
|
||||
self.token_error_callback: Optional[Callable] = None # 新增:token错误回调
|
||||
self.version_callback: Optional[Callable] = None # 新增:版本检查回调
|
||||
self.disconnect_callback: Optional[Callable] = None # 新增:被踢下线回调
|
||||
|
||||
self.is_connected = False
|
||||
|
||||
@@ -266,8 +265,7 @@ class BackendClient:
|
||||
login: Callable = None,
|
||||
success: Callable = None,
|
||||
token_error: Callable = None,
|
||||
version: Callable = None,
|
||||
disconnect: Callable = None):
|
||||
version: Callable = None):
|
||||
"""设置各种消息类型的回调函数"""
|
||||
if store_list:
|
||||
self.store_list_callback = store_list
|
||||
@@ -289,8 +287,6 @@ class BackendClient:
|
||||
self.token_error_callback = token_error
|
||||
if version:
|
||||
self.version_callback = version
|
||||
if disconnect:
|
||||
self.disconnect_callback = disconnect
|
||||
|
||||
def on_connected(self):
|
||||
"""连接成功时的处理"""
|
||||
@@ -447,8 +443,6 @@ class BackendClient:
|
||||
self._handle_staff_list(message)
|
||||
elif msg_type == 'version_response': # 新增:版本检查响应
|
||||
self._handle_version_response(message)
|
||||
elif msg_type == 'disconnect': # 新增:被踢下线
|
||||
self._handle_disconnect(message)
|
||||
else:
|
||||
print(f"未知消息类型: {msg_type}")
|
||||
|
||||
@@ -1234,19 +1228,6 @@ class BackendClient:
|
||||
|
||||
if self.version_callback:
|
||||
self.version_callback(message)
|
||||
|
||||
def _handle_disconnect(self, message: Dict[str, Any]):
|
||||
"""处理被踢下线消息"""
|
||||
disconnect_message = message.get('message', '您的账号在其他设备登录,当前连接已断开')
|
||||
|
||||
print(f"[断开] 收到后端断开通知: {disconnect_message}")
|
||||
|
||||
# 停止重连机制(不再尝试重连)
|
||||
self.should_stop = True
|
||||
|
||||
# 触发断开回调
|
||||
if self.disconnect_callback:
|
||||
self.disconnect_callback(disconnect_message)
|
||||
|
||||
# ==================== 辅助方法 ====================
|
||||
|
||||
|
||||
@@ -54,11 +54,10 @@ 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, disconnect: Callable = None):
|
||||
platform_connected: Callable = None, token_error: Callable = None):
|
||||
"""设置回调函数"""
|
||||
if log:
|
||||
self.callbacks['log'] = log
|
||||
@@ -70,8 +69,6 @@ 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"):
|
||||
"""内部日志方法"""
|
||||
@@ -148,14 +145,9 @@ class WebSocketManager:
|
||||
self._log(f"Token验证失败: {error_content}", "ERROR")
|
||||
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, disconnect=_on_disconnect)
|
||||
token_error=_on_token_error)
|
||||
|
||||
if not backend.is_connected:
|
||||
backend.connect()
|
||||
@@ -189,14 +181,8 @@ class WebSocketManager:
|
||||
self._log(f"Token验证失败: {error_content}", "ERROR")
|
||||
if self.callbacks['token_error']:
|
||||
self.callbacks['token_error'](error_content)
|
||||
|
||||
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.set_callbacks(login=_on_backend_login, success=_on_backend_success, token_error=_on_token_error)
|
||||
backend.connect()
|
||||
|
||||
set_backend_client(backend)
|
||||
|
||||
Reference in New Issue
Block a user