Skip to content

充电桩信息订阅的处理

在整个新能源充电桩业务中,mqtt消息的订阅和发布是很核心的。因为涉及到2个核心主题:充电状态、充电指令

里面消息的处理这块比较多,也比较繁杂,所以我在这块对消息处理这里做了工厂+策略模式的处理

  • 第一步:封装统一的emqx的配置类,把emqx相关的配置选项通过配置实体类的形式进行封装

  • 第二步:构建消息主题的常量类,设计到:1.充电桩通电,代表开始充电了,发布Topic消息给服务器,服务器监听消息 2.充电桩的充电状态上报,发布Topic主题,服务器监听消息 3.小程序选择充电桩通过服务下发开始充电指令给充电桩的主题

  • 第三步:封装Java操作emqx的操作类,这里面核心的地方就在于订阅的消息回调处理这块

  • 第四步:封装回调消息处理类,OnMessageCallback,在里面预留消息到达处理的业务

  • 第五步:定义自定义注解类,定义topic方法和策略的实现类实现关联

  • 第六步:解下来处理消息,消息处理使用策略模式,根据Topic类型建立对应的处理Handler。

    定义策略接口:根据不同的消息topic来走不同的消息处理

  • 第七步:定义策略不同的实现类,专门来处理不同主题的消息

  • 第八步:定义工厂类和工厂的初始化实现类,通过反射机制,用HashMap来进行存储绑定主题和消息处理类的关系

  • 第九步:在OnMessageCallback根据topic主题,利用工厂类获取到对应的策略对象,进而将消息转发到对应的处理类中去调用

扩展

  • 多方式登录
  • 多支付方式整合
  • 多种文件上传方式的整合
  • 。。。

以上2个业务都可以使用上面同样的实现思路来整合