pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -481,10 +481,8 @@ ServerProperties.mqttAcceptDataMinInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "acceptDataMinInterval", null, 1, 720, null) * 60 * 1000L ; mqVo.useMemoryPersistence = conf.getSetAttrBoolean(doc, "config.mqtt", "useMemoryPersistence", null, null) ; String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, false, null) ; if(proAndDevIds == null || proAndDevIds.trim().equals("")){ throw new Exception("config.mqtt.protocolAndDeviceIds配置不合法") ; }else{ String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, true, null) ; if(proAndDevIds != null && !proAndDevIds.trim().equals("")){ proAndDevIds = proAndDevIds.trim() ; proAndDevIds = proAndDevIds.replaceAll(",", ","); proAndDevIds = proAndDevIds.replaceAll(";", ";"); @@ -499,11 +497,8 @@ } } String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, false, null) ; if(subTopicAndQos == null || subTopicAndQos.trim().equals("")){ throw new Exception("config.mqtt.subTopicAndQos配置的主题及Qos不合法") ; }else{ String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, true, null) ; if(subTopicAndQos != null && !subTopicAndQos.trim().equals("")){ subTopicAndQos = subTopicAndQos.trim() ; subTopicAndQos = subTopicAndQos.replaceAll(",", ","); subTopicAndQos = subTopicAndQos.replaceAll(";", ";"); pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java
@@ -64,34 +64,39 @@ throw new Exception("Mqtt连接池获得订阅连接不可用"); } subClients.add(clientSub) ; // 订阅主题 for(int i = 0; i < this.configVo.subTopics.length; i++){ for(int j = 0 ; j < this.configVo.protocolAndDeviceIds.length; j++){ clientSub.subscribe(ServerProperties.orgTag + "/" + this.configVo.protocolAndDeviceIds[j] + "/" + this.configVo.subTopics[i], this.configVo.subTopicsQos[i], //每一个订阅主题都有一个MqttMessageListener实例 new MqttMessageListener(new MqttNotify(){ @Override public void notify(String devId, MqttNotifyInfo... infos) { if(devId != null && infos != null && infos.length > 0){ for(MqttNotifyInfo info : infos){ if(info instanceof DevOnLineInfo){ DevOnLineInfo onLineSt = (DevOnLineInfo)info; if(onLineSt.onLine != null && onLineSt.onLine.booleanValue()){ DevStatusDealer.onLine(devId, ((DevOnLineInfo)info).protocol); }else{ DevStatusDealer.offLine(devId); if(this.configVo.subTopics != null && this.configVo.subTopics.length > 0){ if(this.configVo.protocolAndDeviceIds != null || this.configVo.protocolAndDeviceIds.length > 0){ for(int i = 0; i < this.configVo.subTopics.length; i++){ for(int j = 0 ; j < this.configVo.protocolAndDeviceIds.length; j++){ clientSub.subscribe(ServerProperties.orgTag + "/" + this.configVo.protocolAndDeviceIds[j] + "/" + this.configVo.subTopics[i], this.configVo.subTopicsQos[i], //每一个订阅主题都有一个MqttMessageListener实例 new MqttMessageListener(new MqttNotify(){ @Override public void notify(String devId, MqttNotifyInfo... infos) { if(devId != null && infos != null && infos.length > 0){ for(MqttNotifyInfo info : infos){ if(info instanceof DevOnLineInfo){ DevOnLineInfo onLineSt = (DevOnLineInfo)info; if(onLineSt.onLine != null && onLineSt.onLine.booleanValue()){ DevStatusDealer.onLine(devId, ((DevOnLineInfo)info).protocol); }else{ DevStatusDealer.offLine(devId); } } else if(info instanceof DevRunInfo){ DevStatusDealer.setStatus(devId, (DevRunInfo)info); } } } else if(info instanceof DevRunInfo){ DevStatusDealer.setStatus(devId, (DevRunInfo)info); } } } } }) ); }) ); } } } } } pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java
@@ -29,7 +29,7 @@ public void callback(MqttSubMsg subMsg) { DevStatusDealer.onLine(subMsg.deviceId, subMsg.protocol); DevStatusDealer.afterReceiveSubMessage(subMsg.deviceId); RtuLogDealer.log4Mqtt(subMsg.deviceId, "订阅消息 主题:" + subMsg.topic.longName() + " 元数据:" + subMsg.metaData); RtuLogDealer.log4Mqtt(subMsg.deviceId, "订阅消息 主题:" + subMsg.topic.longName() + " 原数据:" + subMsg.metaData); } @Override pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAppClient.java
@@ -25,7 +25,6 @@ private static final String JobGroupName = "VideoYsGroup" ; private static final Integer ThreadPoolMaxCount = 1 ;//线程池线程最大个数 private static final Integer ThreadPoolPriority = 5 ;//线程优先级 private static final boolean quartzJobRunOneTimes = true ;//定时任务只执行一次 @Value("${video.ys.accessTokenExpireDay: 7}") protected Integer accessTokenExpireDay;//AccessToken过期时间,单位天