parent
ffa448bb3f
commit
a0a867dbfa
@ -0,0 +1,23 @@
|
||||
package org.dromara.common.mqtt.handler;
|
||||
|
||||
import org.eclipse.paho.client.mqttv3.MqttMessage;
|
||||
|
||||
|
||||
public interface MqttMessageHandler {
|
||||
|
||||
|
||||
void onMessageArrived(String topic, MqttMessage message);
|
||||
|
||||
|
||||
default void onConnectionLost(Throwable cause) {
|
||||
|
||||
}
|
||||
|
||||
default void onConnectComplete(boolean reconnect, String serverURI) {
|
||||
|
||||
}
|
||||
|
||||
default void onDeliveryComplete(String topic) {
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package org.dromara.hazard.handler;
|
||||
|
||||
import org.dromara.common.mqtt.handler.MqttMessageHandler;
|
||||
import org.dromara.common.mqtt.server.MqttGateway;
|
||||
import org.eclipse.paho.client.mqttv3.MqttMessage;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 危险源模块的MQTT消息处理器
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
public class HazardMqttMessageHandler implements MqttMessageHandler {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(HazardMqttMessageHandler.class);
|
||||
@Autowired
|
||||
private MqttGateway mqttGateway;
|
||||
|
||||
/**
|
||||
* 处理接收到的MQTT消息
|
||||
*/
|
||||
@Override
|
||||
public void onMessageArrived(String topic, MqttMessage message) {
|
||||
String payload = new String(message.getPayload());
|
||||
log.info("【危险源模块】接收到MQTT消息 - Topic: {}, QoS: {}, Retained: {}, Payload: {}",
|
||||
topic, message.getQos(), message.isRetained(), payload);
|
||||
|
||||
// TODO: 根据不同的主题分发到不同的业务处理方法
|
||||
if (topic.equals("iot-hazard-server")) {
|
||||
handleHazardMessage(topic, payload);
|
||||
} else {
|
||||
log.warn("未知的消息主题: {}", topic);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 连接丢失时的处理
|
||||
*/
|
||||
@Override
|
||||
public void onConnectionLost(Throwable cause) {
|
||||
log.error("【危险源模块】MQTT连接丢失", cause);
|
||||
// TODO: 可以在这里添加告警通知、重连策略等
|
||||
}
|
||||
|
||||
/**
|
||||
* 连接成功时的处理
|
||||
*/
|
||||
@Override
|
||||
public void onConnectComplete(boolean reconnect, String serverURI) {
|
||||
log.info("【危险源模块】MQTT{}连接成功: {}", reconnect ? "重" : "", serverURI);
|
||||
// TODO: 可以在这里重新订阅主题
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息发送完成时的处理
|
||||
*/
|
||||
@Override
|
||||
public void onDeliveryComplete(String topic) {
|
||||
log.debug("【危险源模块】消息发送完成: {}", topic);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理危险源相关消息
|
||||
*/
|
||||
private void handleHazardMessage(String topic, String payload) {
|
||||
log.info("处理危险源消息 - Topic: {}, Payload: {}", topic, payload);
|
||||
// TODO: 实现你的业务逻辑
|
||||
// 例如: 解析JSON、保存数据库、触发业务流程等
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue