base-common/socketio(业务层)
└─ SocketIOManager(使用反射调用 capability-socketio)
↓ 反射调用
capability-socketio(能力层)
└─ SocketIORepository(具体实现)
问题:
capability-socketio(能力层)
├─ SocketIORepository(具体实现)
└─ SocketIOManager(生命周期管理,直接调用 SocketIORepository)
↓ 回调函数
entry(应用层)
└─ AppInitializer(通过直接调用 SocketIOManager,传递回调函数)
优势:
entry(应用层)
↓ 直接依赖
capability-socketio(能力层)
↓ 直接依赖
base-core(基础设施层)
{
"dependencies": {
"@xdz/base-core": "file:../base-core",
"@kit.AbilityKit": "^1.0.0"
}
}
关键点:
ILog(base-core)而不是 LogHelper(base-common)capability-socketio/src/main/ets/socketio/manager/SocketIOManager.ets
生命周期管理
自动重连
回调函数
isLoggedInProvider: 登录状态检查回调(由应用层设置)refreshTokenProvider: Token 刷新回调(由应用层设置)// 在 AppInitializer 中初始化
import { SocketIOManager } from '@xdz/capability-socketio';
import { AuthManager } from '@xdz/base-common';
// 1. 先调用 init(注册生命周期监听)
SocketIOManager.init(context);
// 2. 设置回调函数(直接设置属性,简单直接)
SocketIOManager.isLoggedInProvider = () => {
return AuthManager.getInstance().isLoggedIn();
};
SocketIOManager.refreshTokenProvider = async () => {
return await AuthManager.getInstance().refreshTokenIfNeeded();
};
capability-socketio:
entry:
两者关系:
文档版本: v2.0
更新时间: 2024-12
对应 Android 版本: capability-socketio/架构调整说明.md