Merge remote-tracking branch 'origin/dev' into cody/netwrok_SDK

# Conflicts:
#	apps/im_app/lib/features/chat/presentation/chat_db_test_view_model.dart
#	apps/im_app/lib/features/login/presentation/login_view_model.dart

修复逻辑漏洞,性能优化
This commit is contained in:
Cody
2026-03-08 20:47:28 +08:00
88 changed files with 5695 additions and 593 deletions

View File

@@ -103,7 +103,7 @@ final apiConfigProvider = Provider<ApiConfig>((ref) {
onDecryptResponse: null, // TODO: 接入 cipher_guard_sdk 后注入响应解密回调
onBusinessError: null, // TODO: 接入业务错误统一处理(弹窗 / Toast / 跳转等)
onTransformResponse:
null, // TODO: 如后端信封结构非标准,在此归一化为 { code, data, message }
null, // TODO: 如后端响应格式非标准,在此归一化为 { code, data, message }
onGetTokenExpiry: parseJwtExpiry,
maxRetries: AppConstants.maxRetries,
retryBaseDelay: AppConstants.retryBaseDelay,
@@ -214,6 +214,7 @@ final socketManagerProvider = Provider<SocketManager>((ref) {
final manager = SocketManager(
client: client,
wsUrl: _buildWsUrl(AppConfig.apiBaseUrl),
disconnectInBackground: false, // 所有平台后台保活,心跳不停、连接不断
onMessageTransform: null, // TODO: 接入加解密 SDK 后注入解密回调
onBeforeReconnect: () async {
// 重连前检查 token 是否即将过期,是则主动刷新
@@ -327,9 +328,11 @@ String _buildWsUrl(String httpBaseUrl) {
//
// WidgetsBindingObserverApp 层 app.dart
// → SocketManager.onEnterBackground()
// disconnectInBackground=true disconnect默认移动端省电
// disconnectInBackground=false → 完全保活,不断连不暂停心跳(桌面端
// → SocketManager.onEnterForeground() → onBeforeReconnect → reconnect
// disconnectInBackground=false → 完全保活,心跳不停(本项目默认
// disconnectInBackground=true → disconnect + 暂停心跳(省电模式
// → SocketManager.onEnterForeground()
// 保活模式 → 检查连接健康,异常则重连
// 断连模式 → onBeforeReconnect → reconnect
//
// Token 刷新 → WebSocket 同步链路:
//
@@ -524,5 +527,5 @@ String _buildWsUrl(String httpBaseUrl) {
// Upload B: 二进制上传到 S3 presigned URL
// @override String get path => presignedURL; // 完整 URL不拼 baseURL
// @override Object? get uploadData => bytes; // Uint8List
// @override decodeResponse(response) { ... } // S3 不走标准信封
// @override decodeResponse(response) { ... } // S3 不走标准响应格式
//