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));