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