You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
1.6 KiB

2 years ago
# 平台内部核心类及接口说明
平台内部主要通过事件驱动实现解耦,本文列举核心的类以及接口,具体实现细节以及逻辑请查看对应类的代码。
::: tip
可以利用Idea `double shift`来搜索对应的类和接口.
:::
## 设备操作底层类,接口
1. `DeviceRegistry`: 设备注册中心,用于统一管理设备信息以及提供设备操作接口.
2. `DeviceOperator`: 设备操作接口,通过`DeviceRegister.getDevice(deviceId)`获取,用于对设备进行相关操作,如获取配置,发送消息等.
3. `DeviceProductOperator`: 产品操作接口,通过`DeviceProductOperator.getProduct(productId)`获取.
4. `EventBus`: 事件总线,通过事件总线去订阅设备数据来实现解耦.(也可以用过`@Subscribe()`注解订阅).
5. `DeviceGateway` : 设备接入网关接口,利用网络组件来接入设备消息.
6. `DeviceGatewayHelper`: 统一处理设备消息,创建Session等操作的逻辑.
7. `DecodedClientMessageHandler`: 解码后的平台消息处理器,如果是自定义实现网关或者在协议包里手动回复消息等处理,
则可以使用此接口直接将设备消息交给平台.(如果调用了`DeviceGatewayHelper`则不需要此操作).
8. `DeviceMessageBusinessHandler`: 处理设备状态数据库同步,设备自动注册等逻辑等类.
9. `LocalDeviceInstanceService`: 设备实例管理服务类.
10. `DeviceSessionManager`: 设备会话管理器,可获取当前服务的会话信息.
11. `DeviceDataStoragePolicy`: 设备存储策略接口,实现此接口来进行自定义设备数据存储策略.
12. `DeviceMessageConnector`: 负责将设备消息转发到`事件总线`.