#update mqtt 上位机
This commit is contained in:
@@ -13,6 +13,7 @@ import com.maibu.core.enums.AlarmType;
|
||||
import com.maibu.core.redis.RedisCache;
|
||||
import org.eclipse.paho.client.mqttv3.MqttException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -51,6 +52,10 @@ public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Value("${mqtt.client-id}")
|
||||
private String mqttClientId;
|
||||
|
||||
|
||||
@Override
|
||||
public List<Alarm> selectAlarmPage(AlarmQueryDTO queryDTO) {
|
||||
// validateQueryParams(queryDTO);
|
||||
@@ -407,7 +412,8 @@ public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements
|
||||
|
||||
public void pushErrorMessage(String deviceId, String dto) {
|
||||
try {
|
||||
GlobalMemory.mqttClientUtil.publish(String.format(MqttTopic.DEVICE_ERROR_PUSH_TOPIC, deviceId), dto);
|
||||
GlobalMemory.customMqttDeviceMonitor.publish(mqttClientId, String.format(MqttTopic.DEVICE_ERROR_PUSH_TOPIC, deviceId), dto);
|
||||
// GlobalMemory.mqttClientUtil.publish(String.format(MqttTopic.DEVICE_ERROR_PUSH_TOPIC, deviceId), dto);
|
||||
// List<NettyDevice> controlMasters =
|
||||
// sessionManager.getAllSlaveControl(deviceId);
|
||||
// if (!CollectionUtils.isEmpty(controlMasters)) {
|
||||
|
||||
@@ -273,25 +273,15 @@ public class IotDeviceCommonService {
|
||||
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
|
||||
executor.scheduleWithFixedDelay(() -> {
|
||||
try {
|
||||
CustomMqttDeviceMonitor monitor = GlobalMemory.customMqttDeviceMonitor;
|
||||
GlobalMemory.getAllSiteMemory().forEach(siteMemory -> {
|
||||
|
||||
|
||||
CustomMqttDeviceMonitor monitor = siteMemory.getCustomMqttDeviceMonitor();
|
||||
if (monitor == null) {
|
||||
// 1. 创建 MQTT 监控器和消息处理器
|
||||
monitor = new CustomMqttDeviceMonitor();
|
||||
monitor.registerHandler(new GenericPropertyMessageHandler());
|
||||
monitor.registerHandler(new ActionMessageHandler());
|
||||
|
||||
siteMemory.setCustomMqttDeviceMonitor(monitor);
|
||||
}
|
||||
// 2. 查询所有外部设备
|
||||
List<IoTCommonDevice> deviceList = siteMemory.getAllCommonDevice();
|
||||
if (CollectionUtils.isEmpty(deviceList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for (IoTCommonDevice device : deviceList) {
|
||||
if (!ConnectType.MQTT.equals(device.getConnectType())) {
|
||||
continue;
|
||||
@@ -333,8 +323,6 @@ public class IotDeviceCommonService {
|
||||
|
||||
monitor.registerDevice(deviceConfig);
|
||||
}
|
||||
|
||||
siteMemory.setCustomMqttDeviceMonitor(monitor);
|
||||
monitor.start();
|
||||
});
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user