diff --git a/pom.xml b/pom.xml
index 426f6f7..bbf6218 100644
--- a/pom.xml
+++ b/pom.xml
@@ -112,6 +112,11 @@
spring-boot-starter-test
test
+
+ com.iot.modbus.rtcp.commons
+ modbus-rtcp-commons-keymgr
+ 1.0
+
org.springframework.boot
spring-boot-devtools
diff --git a/src/main/java/com/iot/modbus_rtcp/ModbusRtcpApplication.java b/src/main/java/com/iot/modbus_rtcp/ModbusRtcpApplication.java
index 6de04d7..c59a67a 100644
--- a/src/main/java/com/iot/modbus_rtcp/ModbusRtcpApplication.java
+++ b/src/main/java/com/iot/modbus_rtcp/ModbusRtcpApplication.java
@@ -1,6 +1,7 @@
package com.iot.modbus_rtcp;
import cn.hutool.json.JSONUtil;
+import com.iot.modbus.rtcp.commons.keymgr.LicenseValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -12,12 +13,13 @@ import org.springframework.context.ApplicationContextAware;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
-@SpringBootApplication(scanBasePackages = {"com.iot.modbus_rtcp"})
+@SpringBootApplication(scanBasePackages = {"com.iot.modbus_rtcp", "com.iot.modbus.rtcp"})
public class ModbusRtcpApplication implements ApplicationContextAware {
private static final Logger logger = LoggerFactory.getLogger("com.iot.modbus_rtcp.rabbit");
- public static void main(String[] args) {
+ public static void main(String[] args) throws Exception {
+ LicenseValidator.main(args);
SpringApplication.run(ModbusRtcpApplication.class, args);
}
diff --git a/src/main/java/com/iot/modbus_rtcp/controller/ModbusTCPController.java b/src/main/java/com/iot/modbus_rtcp/controller/ModbusTCPController.java
index f5e2eef..9f8f527 100644
--- a/src/main/java/com/iot/modbus_rtcp/controller/ModbusTCPController.java
+++ b/src/main/java/com/iot/modbus_rtcp/controller/ModbusTCPController.java
@@ -96,6 +96,11 @@ public class ModbusTCPController implements ApplicationRunner {
return Response.succeed(this.nettyServer.getGroup().onlineGateway());
}
+ @GetMapping("/online/total")
+ public Response onlineTotal() {
+ return Response.succeed(this.nettyServer.getGroup().onlineTotal());
+ }
+
@Override
public void run(ApplicationArguments args) throws Exception {
this.nettyServer = new NettyServer(502, 10);
diff --git a/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java b/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java
index 702e837..26253d2 100644
--- a/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java
+++ b/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java
@@ -10,7 +10,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
@@ -81,7 +80,7 @@ public class AutoCollectJobs {
}
}, new ThreadPoolExecutor.CallerRunsPolicy());
- @Scheduled(cron = "0/30 * * * * ? ")
+ // @Scheduled(cron = "0/30 * * * * ? ")
public void autoCollect() {
int pageIndex = 0;
int pageSize = 1000;
diff --git a/src/main/java/com/iot/modbus_rtcp/netty/ChannelGroup.java b/src/main/java/com/iot/modbus_rtcp/netty/ChannelGroup.java
index 5a30fd5..82e2954 100644
--- a/src/main/java/com/iot/modbus_rtcp/netty/ChannelGroup.java
+++ b/src/main/java/com/iot/modbus_rtcp/netty/ChannelGroup.java
@@ -72,6 +72,13 @@ public class ChannelGroup {
.collect(Collectors.toSet());
}
+ public Long onlineTotal() {
+ return this.mChannelMap.keySet()
+ .stream()
+ .filter(identifier -> !StringUtils.contains(identifier, ":"))
+ .count();
+ }
+
public void see() {
log.info("当前连接有:{}", new ArrayList<>(this.mChannelMap.keySet()));
}
diff --git a/src/main/java/com/iot/modbus_rtcp/netty/NettyServer.java b/src/main/java/com/iot/modbus_rtcp/netty/NettyServer.java
index cd4e8de..c558e2b 100644
--- a/src/main/java/com/iot/modbus_rtcp/netty/NettyServer.java
+++ b/src/main/java/com/iot/modbus_rtcp/netty/NettyServer.java
@@ -1,5 +1,7 @@
package com.iot.modbus_rtcp.netty;
+import com.iot.modbus.rtcp.commons.keymgr.LicenseValidator;
+import com.iot.modbus_rtcp.utils.SpringUtil;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.*;
import io.netty.channel.nio.NioEventLoopGroup;
@@ -73,6 +75,7 @@ public class NettyServer extends ChannelInitializer {
String ip = ch.remoteAddress().getHostString();
//过滤掉docker 网关请求
if ("172.17.0.1".equals(ip)) return;
+ SpringUtil.getBean(LicenseValidator.class).verifyNumber(ch::close);
int port = ch.remoteAddress().getPort();
this.group.put(ChannelGroup.getKey(ip, port), new SyncPriorityChannel(ch));