package com.dy.rtuMw.server.mqtt; import com.dy.common.mw.protocol4Mqtt.MqttMsgParser; import com.dy.common.mw.protocol4Mqtt.MqttPubMsg; import com.dy.common.mw.protocol4Mqtt.MqttSubMsg; import com.dy.common.util.Callback; import org.eclipse.paho.client.mqttv3.* ; /** * @Author: liurunyu * @Date: 2025/6/4 15:52 * @Description */ public class MqttMessageListener implements IMqttMessageListener{ @Override public void messageArrived(String topic, MqttMessage msg) throws Exception { MqttMsgParser parser = new MqttMsgParser() ; MqttSubMsg subMsg = parser.parseSubMsg(topic, msg) ; this.nextDeal(subMsg); } private void nextDeal(MqttSubMsg subMsg)throws Exception { subMsg.action(new Callback() { @Override public void call(Object obj) { MqttSubMsg subMs = (MqttSubMsg) obj ; MqttPubMsg pubMs = MqttPubMsgCache.matchFromTail(subMs) ; if(pubMs != null){ subMs.mqttResultSendWebUrl = pubMs.mqttResultSendWebUrl ; subMs.commandId = pubMs.commandId ; try { MqttComResultCache.getInstance().cacheMqttComResult(new MqttComResultNode(subMs)); } catch (Exception e) { e.printStackTrace(); } } try{ MqttSubMsgCache.getInstance().cacheMsg(new MqttSubMsgNode(subMsg)); }catch (Exception e){ } } @Override public void call(Object... objs) { } @Override public void exception(Exception e) { } }); } }