充电桩信息订阅的处理
在整个新能源充电桩业务中,mqtt消息的订阅和发布是很核心的。因为涉及到2个核心主题:充电状态、充电指令
里面消息的处理这块比较多,也比较繁杂,所以我在这块对消息处理这里做了工厂+策略模式的处理
第一步:封装统一的emqx的配置类,把emqx相关的配置选项通过配置实体类的形式进行封装
第二步:构建消息主题的常量类,设计到:1.充电桩通电,代表开始充电了,发布Topic消息给服务器,服务器监听消息 2.充电桩的充电状态上报,发布Topic主题,服务器监听消息 3.小程序选择充电桩通过服务下发开始充电指令给充电桩的主题
第三步:封装Java操作emqx的操作类,这里面核心的地方就在于订阅的消息回调处理这块
第四步:封装回调消息处理类,
OnMessageCallback,在里面预留消息到达处理的业务第五步:定义自定义注解类,定义topic方法和策略的实现类实现关联
第六步:解下来处理消息,消息处理使用策略模式,根据Topic类型建立对应的处理Handler。
定义策略接口:根据不同的消息topic来走不同的消息处理
第七步:定义策略不同的实现类,专门来处理不同主题的消息
第八步:定义工厂类和工厂的初始化实现类,通过反射机制,用HashMap来进行存储绑定主题和消息处理类的关系
第九步:在
OnMessageCallback根据topic主题,利用工厂类获取到对应的策略对象,进而将消息转发到对应的处理类中去调用
扩展
- 多方式登录
- 多支付方式整合
- 多种文件上传方式的整合
- 。。。
以上2个业务都可以使用上面同样的实现思路来整合