package com.dy.rtuMw.server.mqtt; import com.dy.common.mw.UnitAdapterInterface; import com.dy.common.mw.UnitCallbackInterface; import com.dy.common.mw.UnitInterface; /** * @Author: liurunyu * @Date: 2025/6/4 14:46 * @Description */ public class MqttUnit implements UnitInterface { private static MqttUnit instance = new MqttUnit() ; public static MqttUnitAdapter adapter ; public static MqttUnitConfigVo confVo ; private static MqttManager manager ; private MqttUnit(){} ; public static MqttUnit getInstance(){ return instance ; } @Override public void setAdapter(UnitAdapterInterface adapter) throws Exception { if(adapter == null){ throw new Exception("Mqtt消息模块适配器对象不能为空!") ; } MqttUnit.adapter = (MqttUnitAdapter)adapter ; MqttUnit.confVo = MqttUnit.adapter.getConfig() ; if(MqttUnit.confVo == null){ throw new Exception("Mqtt消息模块配置对象不能为空!") ; } } /** * 初始化 */ @Override public void start(UnitCallbackInterface callback) throws Exception { if(confVo.enable){ manager = MqttManager.getInstance() ; manager.initOption(confVo); manager.start(); callback.call(null) ; System.out.println("Mqtt消息模块成功启动"); }else{ System.out.println("Mqtt消息模块配置不启动"); } } @Override public void stop(UnitCallbackInterface callback) throws Exception { if(manager != null){ manager.stop(); } callback.call(null) ; } public void recover(UnitCallbackInterface callback) throws Exception { this.start(callback) ; callback.call(null) ; } }