diff --git a/iot-common/iot-third/pom.xml b/iot-common/iot-third/pom.xml index b63c0df..aae5f93 100644 --- a/iot-common/iot-third/pom.xml +++ b/iot-common/iot-third/pom.xml @@ -75,6 +75,10 @@ + + org.springframework.cloud + spring-cloud-context + diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/AudioService.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/AudioService.java index a7d3fa2..f6e2343 100644 --- a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/AudioService.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/AudioService.java @@ -7,6 +7,7 @@ import com.qiuguo.iot.base.utils.WebClientUtils; import com.qiuguo.iot.third.request.AudioRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; import reactor.core.publisher.Mono; @@ -17,6 +18,7 @@ import java.util.ArrayList; */ @Service @Slf4j +@RefreshScope public class AudioService { @Value("${tts.url:}") private String url; diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java index 4d05451..9f085d5 100644 --- a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java @@ -12,6 +12,7 @@ import com.qiuguo.iot.third.nlp.lac.HubLacRequest; import com.qiuguo.iot.third.nlp.lac.LacRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; @@ -33,6 +34,7 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; //LAC中的tag说明 v:动词 n:名称 PER/nr:人名 a:量词 w:标点符号 m:数字(中文、阿拉伯) TIME:时间词 vn:动名词组 xc:语气词 c:连接词 @Service @Slf4j +@RefreshScope public class LacNlpService implements INlp { @Value("${lac.huburl:}") private String hubUrl; diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/config/properties/LacProperties.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/config/properties/SomeProperties.java similarity index 73% rename from iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/config/properties/LacProperties.java rename to iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/config/properties/SomeProperties.java index c46e956..b9ddcd3 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/config/properties/LacProperties.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/config/properties/SomeProperties.java @@ -2,13 +2,9 @@ package com.qiuguo.iot.box.websocket.api.config.properties; import lombok.Data; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.List; - /** * Xss配置. * @@ -18,13 +14,18 @@ import java.util.List; @Data @Component @RefreshScope -public class LacProperties { +public class SomeProperties { /** * Lac类型. */ @Value("${lac.type}") private String type; + + @Value("${device.checkTimeout}") + private Boolean checkTimeout; + @Value("${device.timeout}") + private Long timeOut;//2分钟 } diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java index 567391f..a68d99f 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java @@ -8,7 +8,7 @@ import com.qiuguo.iot.base.enums.*; import com.qiuguo.iot.base.model.UserDeviceInfoModel; import com.qiuguo.iot.base.utils.StringUtils; import com.qiuguo.iot.box.websocket.api.command.ActionCommand; -import com.qiuguo.iot.box.websocket.api.config.properties.LacProperties; +import com.qiuguo.iot.box.websocket.api.config.properties.SomeProperties; import com.qiuguo.iot.box.websocket.api.domain.BaseSession; import com.qiuguo.iot.box.websocket.api.domain.box.BoxSession; import com.qiuguo.iot.box.websocket.api.domain.box.BoxTalkMessage; @@ -26,7 +26,6 @@ import com.qiuguo.iot.third.service.NlpService; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Value; -import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.data.redis.core.ReactiveStringRedisTemplate; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; @@ -43,10 +42,7 @@ import java.time.Duration; //@RefreshScope 自定义注解会导致失效 @Slf4j public class BoxWebSocketHandler implements WebSocketHandler { - @Value("${device.checkTimeout}") - private Boolean checkTimeout; - @Value("${device.timeout}") - private Long timeOut;//2分钟 + @Resource private ReactiveStringRedisTemplate reactiveStringRedisTemplate; @@ -68,7 +64,7 @@ public class BoxWebSocketHandler implements WebSocketHandler { * 调用LAC类型 */ @Resource - private LacProperties lacProperties; + private SomeProperties lacProperties; @Override @@ -78,7 +74,7 @@ public class BoxWebSocketHandler implements WebSocketHandler { HttpHeaders headers = handshakeInfo.getHeaders(); String sn = headers.get(HttpHeaderConstans.BOX_SN).get(0); Long linkTime = Long.parseLong(headers.get(HttpHeaderConstans.TIME).get(0)); - if(checkTimeout && System.currentTimeMillis() - linkTime > timeOut){ + if(lacProperties.getCheckTimeout() && System.currentTimeMillis() - linkTime > lacProperties.getTimeOut()){ //关闭连接 log.info("设备{},请求数据已超时", sn); return session.close(); diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java index 8ba7f34..7abb75f 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java @@ -9,7 +9,7 @@ import com.qiuguo.iot.base.enums.ResponeEnum; import com.qiuguo.iot.base.enums.YesNo; import com.qiuguo.iot.base.utils.WebClientUtils; import com.qiuguo.iot.box.websocket.api.command.ActionCommand; -import com.qiuguo.iot.box.websocket.api.config.properties.LacProperties; +import com.qiuguo.iot.box.websocket.api.config.properties.SomeProperties; import com.qiuguo.iot.box.websocket.api.domain.user.UserSession; import com.qiuguo.iot.box.websocket.api.domain.user.UserTalkMessage; import com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration; @@ -23,7 +23,6 @@ import com.qiuguo.iot.third.service.NlpService; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Value; -import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; import org.springframework.web.reactive.socket.HandshakeInfo; @@ -43,10 +42,6 @@ import java.util.Map; @WebSocketMapping("/websocket/customer") @Slf4j public class CustomerWebSocketHandler implements WebSocketHandler { - @Value("${device.checkTimeout}") - private Boolean checkTimeout; - @Value("${device.timeout}") - private Long timeOut;//2分钟 @Resource protected DeviceUserBindService deviceUserBindService; @@ -61,7 +56,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { private BaseWebSocketService baseWebSocketService; @Resource - private LacProperties lacProperties; + private SomeProperties lacProperties; @Override @@ -73,7 +68,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { String token = headers.get(HttpHeaderConstans.API_TOKEN).get(0); Long userId = Long.valueOf(headers.get(HttpHeaderConstans.USER_ID).get(0)); Long linkTime = Long.parseLong(headers.get(HttpHeaderConstans.TIME).get(0)); - if(checkTimeout && System.currentTimeMillis() - linkTime > timeOut){ + if(lacProperties.getCheckTimeout() && System.currentTimeMillis() - linkTime > lacProperties.getTimeOut()){ //关闭连接 log.info("用户{},请求数据已超时", userId); return session.close(); diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/service/BaseWebSocketService.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/service/BaseWebSocketService.java index eee3d95..9473280 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/service/BaseWebSocketService.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/service/BaseWebSocketService.java @@ -42,6 +42,9 @@ public class BaseWebSocketService { @Value("${tts.suanfa}") private Boolean suanfa; + @Value("${tts.max.text}") + private Integer ONE_MAX_TEXT; + protected static ConcurrentHashMap userGroup = new ConcurrentHashMap<>(); protected static ConcurrentHashMap boxGroup = new ConcurrentHashMap<>(); @@ -58,8 +61,6 @@ public class BaseWebSocketService { @Autowired private ReactiveStringRedisTemplate reactiveStringRedisTemplate; - protected static int ONE_MAX_TEXT = 50; - diff --git a/iot-modules/iot-box-websocket-api/src/main/resources/bootstrap-dev.yml b/iot-modules/iot-box-websocket-api/src/main/resources/bootstrap-dev.yml index be48026..030f013 100644 --- a/iot-modules/iot-box-websocket-api/src/main/resources/bootstrap-dev.yml +++ b/iot-modules/iot-box-websocket-api/src/main/resources/bootstrap-dev.yml @@ -46,6 +46,8 @@ qiuguo: checktoken: url: https://qiuguo-app.pre.qiuguojihua.com/pre-api/user/user/getUser tts: + #max: + # text: 30 #当发送给前端文字超过改值时,分批发送给前端 suanfa: true #nacos控制变化 url: http://192.168.8.211:18000/run/predict #算法语音合成 lac: