diff --git a/gather-broker/pom.xml b/gather-broker/pom.xml
index 9695ba7..d3d3ea0 100644
--- a/gather-broker/pom.xml
+++ b/gather-broker/pom.xml
@@ -91,7 +91,7 @@
org.eclipse.paho
org.eclipse.paho.client.mqttv3
- 1.1.0
+ 1.2.0
diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java
index 07f671b..5445b00 100644
--- a/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java
+++ b/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java
@@ -83,9 +83,12 @@ public class CenterServiceImpl implements CenterService {
public void reconnected() {
if (!this.isConnected()) {
try {
- mqttClientService.getClient().reconnect();
- } catch (MqttException e) {
+ if (!mqttClientService.reconnect()) {
+ log.error("Mqtt重连失败");
+ }
+ } catch (Exception e) {
log.error("Mqtt重连失败:{}", e.getMessage());
+ return;
}
}
}
diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java
index 2679cab..5a8bdba 100644
--- a/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java
+++ b/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java
@@ -362,7 +362,7 @@ public class ConnectionServiceImpl extends ServiceImpl().eq("connection_id", connectionEntity.getId()));
-
+ BuffContext.itemBuff.get(connectionEntity.getDeviceId()).clear();
List itemEntities = new ArrayList<>();
items.forEach(
i -> {
@@ -504,20 +504,21 @@ public class ConnectionServiceImpl extends ServiceImpl= 60) {
- corn = "0 0" + "0/" + uploadcycle / 60 + " * * ?";
- trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(corn)).build();
- }
+
+ String corn = null;
+ if (uploadType == 0) {
+ trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(uploadcycle)).build();
+ } else if (uploadType == 1 && uploadcycle < 60) {
+ corn = "0 " + "0/" + uploadcycle + " * * * ?";
+ trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(corn)).build();
+ } else if (uploadType == 1 && uploadcycle >= 60) {
+ corn = "0 0" + "0/" + uploadcycle / 60 + " * * ?";
+ trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(corn)).build();
}
+
QuartzContext.jobs.put(deviceId, jobDetail);
QuartzContext.triggers.put(deviceId, trigger);
if (status == 1) {
diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java
index f073a68..45c22e5 100644
--- a/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java
+++ b/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java
@@ -48,13 +48,13 @@ public class MqttClientServiceImpl implements MqttClientService {
@Autowired
ClientService clientService;
+ MqttConnectOptions options = new MqttConnectOptions();
+
@Override
public Boolean init(String host, Integer port, String username, String password, String clientId, MqttCallback publishCallBack, List sTopic, int qos) {
try {
host = "tcp://" + host + ":" + port;
client = new MqttClient(host, clientId);
- MqttConnectOptions options;
- options = new MqttConnectOptions();
options.setCleanSession(true);
options.setKeepAliveInterval(10);
options.setConnectionTimeout(50);
@@ -109,11 +109,11 @@ public class MqttClientServiceImpl implements MqttClientService {
if (!client.isConnected()) {
client.reconnect();
}
+ return client.isConnected();
} catch (Exception e) {
log.error("Mqtt客户端重连失败:{}", e.getMessage());
return false;
}
- return true;
}
@Override
diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java
index 71ac5a4..20af191 100644
--- a/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java
+++ b/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java
@@ -206,8 +206,18 @@ public class MqttInfoServiceImpl implements MqttInfoService {
ConfigContext.items.get(connectionEntity.getDeviceId()).put(connectionItemEntity.getItemCode(), connectionItemEntity);
}
}
+
+ //点位同步
if (CollectionUtils.isNotEmpty(i.getItems())) {
connectionItemService.remove(new QueryWrapper().eq("connection_id", connectionEntity.getId()).notIn("item_code", i.getItems()));
+ Map buffMap = BuffContext.itemBuff.get(connectionEntity.getDeviceId());
+ if (CollectionUtils.isNotEmpty(buffMap)) {
+ for (String itemCode : buffMap.keySet()) {
+ if (!i.getItems().contains(itemCode)) {
+ buffMap.remove(itemCode);
+ }
+ }
+ }
}
}
}
diff --git a/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class
index 8256223..2125e9d 100644
Binary files a/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class differ
diff --git a/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class
index ba69263..273b61b 100644
Binary files a/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class differ
diff --git a/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class
index d65b999..1f70d97 100644
Binary files a/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class differ
diff --git a/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class
index b015fb4..15c09c6 100644
Binary files a/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class differ