一、核心设计原则
-
统一设备池管理
使用中心化设备池管理所有连接状态:const devicePool = new Map(); // 结构:{ deviceId: { state, characteristics, queue } } -
异步任务队列
每个设备独立维护指令队列:class DeviceQueue { constructor() { this.pending = []; // 待执行队列 this.executing = null; // 当前执行任务 } add(task) { /* ... */ } // 添加任务 } -
连接数动态调控
平台自适应连接策略:function checkConnectionLimit() { // iOS限制7个,Android可扩展 const max = uni.getSystemInfoSync().platform === 'ios' ? 7 : 15; return devicePool.size >= max ? false : true; }
二、并发控制模型
graph TD
A[设备发现] --> B{连接池检查}
B -->|可连接| C[创建设备实例]
B -->|已达上限| D[触发LRU淘汰]
C --> E[初始化指令队列]
E --> F[注册全局监听]
F --> G[加入设备池]

最低0.47元/天 解锁文章
2737

被折叠的 条评论
为什么被折叠?



