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) { 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
} 
 |