From 64e8d23a3201b3d4dfd9ab68aaf3da35fcf522ae Mon Sep 17 00:00:00 2001 From: wxd-gaming <492794628@qq.com> Date: Thu, 1 Aug 2024 20:58:18 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wxdgaming.boot.spring/.idea/compiler.xml | 38 ++++++------- wxdgaming.boot.spring/.idea/encodings.xml | 29 ++++++++++ wxdgaming.boot.spring/.idea/misc.xml | 3 + wxdgaming.boot.spring/.idea/modules.xml | 2 +- wxdgaming.boot.spring/.idea/vcs.xml | 1 + wxdgaming.boot.spring/pom.xml | 24 ++++---- .../boot/spring/starter/BootStarter.java | 22 +++++++- .../spring/starter/config/DataBaseConfig.java | 1 - .../boot/spring/starter/config/NetConfig.java | 29 ++++++++++ .../spring/starter/config/SpringUtil.java | 20 ++++--- .../spring/starter/config/bean/TcpConfig.java | 55 +++++++++++++++++++ .../boot/spring/starter/i/OnClose.java | 15 +++++ .../boot/spring/starter/i/OnStart.java | 15 +++++ .../spring/starter/service/GMController.java | 4 -- .../starter/service/batis/MysqlService.java | 1 - .../starter/service/batis/MysqlService1.java | 1 - .../starter/service/batis/MysqlService2.java | 1 - .../starter/service/batis/MysqlService3.java | 1 - .../starter/service/batis/RedisService.java | 1 - .../starter/service/batis/RedisService1.java | 1 - .../spring/starter/service/net/TsService.java | 49 +++++++++++++++++ .../starter/service/net/TsService1.java | 49 +++++++++++++++++ .../spring/starter/service/net/WsService.java | 44 +++++++++++++++ .../boot/spring/starter/test/B1.java | 1 - .../src/main/resources/application-net.yml | 21 +++++++ .../src/main/resources/application.yml | 2 +- 26 files changed, 376 insertions(+), 54 deletions(-) create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml diff --git a/wxdgaming.boot.spring/.idea/compiler.xml b/wxdgaming.boot.spring/.idea/compiler.xml index d17fa41..3d8c431 100644 --- a/wxdgaming.boot.spring/.idea/compiler.xml +++ b/wxdgaming.boot.spring/.idea/compiler.xml @@ -6,51 +6,48 @@ + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - diff --git a/wxdgaming.boot.spring/.idea/modules.xml b/wxdgaming.boot.spring/.idea/modules.xml index f0bca73..9710109 100644 --- a/wxdgaming.boot.spring/.idea/modules.xml +++ b/wxdgaming.boot.spring/.idea/modules.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/wxdgaming.boot.spring/.idea/vcs.xml b/wxdgaming.boot.spring/.idea/vcs.xml index 782884e..efd944e 100644 --- a/wxdgaming.boot.spring/.idea/vcs.xml +++ b/wxdgaming.boot.spring/.idea/vcs.xml @@ -2,6 +2,7 @@ + \ No newline at end of file diff --git a/wxdgaming.boot.spring/pom.xml b/wxdgaming.boot.spring/pom.xml index ebb21a3..db4c99b 100644 --- a/wxdgaming.boot.spring/pom.xml +++ b/wxdgaming.boot.spring/pom.xml @@ -52,6 +52,16 @@ + + + + com.alibaba + fastjson + 2.0.45 + + + + org.springframework @@ -95,7 +105,6 @@ com.alibaba fastjson - 2.0.45 @@ -161,18 +170,13 @@ ${wxdgaming.boot.version} - org.apache.bcel - bcel - 6.7.0 - - - org.luaj - luaj-jse - 3.0.1 + wxdgaming.boot + wxdgaming.boot.lua + ${wxdgaming.boot.version} wxdgaming.boot - wxdgaming.boot.lua + wxdgaming.boot.net ${wxdgaming.boot.version} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java index b56ad05..8669285 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java @@ -1,7 +1,5 @@ package wxdgaming.boot.spring.starter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @@ -10,7 +8,9 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesScan; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import wxdgaming.boot.agent.loader.ClassDirLoader; +import wxdgaming.boot.agent.system.ReflectContext; import wxdgaming.boot.spring.starter.config.SpringUtil; +import wxdgaming.boot.spring.starter.i.OnStart; @EnableAsync @EnableScheduling @@ -32,6 +32,24 @@ public class BootStarter { public static void reload() throws Exception { ClassDirLoader classDirLoader = new ClassDirLoader("wxdgaming.boot.springstarter/target/test-classes", BootStarter.class.getClassLoader()); SpringUtil.loadClassLoader(classDirLoader, "wxdgaming.boot.springstarter.scripts"); + ReflectContext + .Builder + .of(classDirLoader, "wxdgaming.boot") + .build() + .stream() + .sorted((o1, o2) -> SpringUtil.classComparator.compare(o1.getCls(), o2.getCls())) + .forEach(info -> { + Class cls = info.getCls(); + info.methodsWithAnnotated(OnStart.class).forEach(method -> { + Object bean = SpringUtil.getBean(cls); + System.out.println(cls + " - " + method.getName()); + try { + method.invoke(bean); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + }); } } \ No newline at end of file diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java index 44c11aa..90bf79f 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java @@ -18,7 +18,6 @@ import java.io.Serializable; **/ @Slf4j @Data -@Order(1) @Component @DependsOn(value = {"threadPoolConfig"}) @ConfigurationProperties(prefix = "database") diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java new file mode 100644 index 0000000..ece57f6 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java @@ -0,0 +1,29 @@ +package wxdgaming.boot.spring.starter.config; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.DependsOn; +import org.springframework.stereotype.Component; +import wxdgaming.boot.spring.starter.config.bean.TcpConfig; + +/** + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2024-08-01 20:04 + **/ +@Slf4j +@Data +@Component +@DependsOn(value = {"threadPoolConfig"}) +@ConfigurationProperties(prefix = "net-config") +public class NetConfig { + + private TcpConfig tcpSocket; + private TcpConfig tcpSocket1; + private TcpConfig webSocket; + + public NetConfig() { + System.out.println("\n" + this.getClass()); + } + +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java index 7c0a76b..b1d6b33 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java @@ -32,6 +32,7 @@ import wxdgaming.boot.agent.system.ReflectContext; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.util.Comparator; import java.util.List; import java.util.Optional; @@ -214,17 +215,20 @@ public class SpringUtil implements ApplicationContextAware, WebApplicationInitia } + public static final Comparator> classComparator = (o1, o2) -> { + int o1Annotation = Optional.ofNullable(o1.getAnnotation(Order.class)).map(Order::value).orElse(999999); + int o2Annotation = Optional.ofNullable(o2.getAnnotation(Order.class)).map(Order::value).orElse(999999); + if (o1Annotation != o2Annotation) { + return Integer.compare(o1Annotation, o2Annotation); + } + return o1.getName().compareTo(o2.getName()); + }; + public static void loadClassLoader(ReflectContext context) { + List> list = context.classStream() .filter(SpringUtil::hasSpringAnnotation) - .sorted((o1, o2) -> { - int o1Annotation = Optional.ofNullable(o1.getAnnotation(Order.class)).map(Order::value).orElse(999999); - int o2Annotation = Optional.ofNullable(o2.getAnnotation(Order.class)).map(Order::value).orElse(999999); - if (o1Annotation != o2Annotation) { - return Integer.compare(o1Annotation, o2Annotation); - } - return o1.getName().compareTo(o2.getName()); - }) + .sorted(classComparator) .toList(); loadClassLoader(list); } diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java new file mode 100644 index 0000000..72e59a3 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java @@ -0,0 +1,55 @@ +package wxdgaming.boot.spring.starter.config.bean; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; +import wxdgaming.boot.core.lang.ObjectBase; +import wxdgaming.boot.core.str.StringUtil; +import wxdgaming.boot.net.http.ssl.SslContextServer; +import wxdgaming.boot.net.http.ssl.SslProtocolType; + +import javax.net.ssl.SSLContext; +import java.io.Serializable; + +/** + * tcp网络配置 + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2021-09-30 09:33 + **/ +@Getter +@Setter +@Accessors(chain = true) +public class TcpConfig extends ObjectBase implements Serializable { + + @JSONField(ordinal = 1) + private String name = ""; + /** 外网ip */ + @JSONField(ordinal = 2) + private String wanIp = "0.0.0.0"; + /** 内网ip */ + @JSONField(ordinal = 3) + private String host = ""; + /** 监听端口 */ + @JSONField(ordinal = 4) + private int port = 0; + @JSONField(ordinal = 5) + private String sslProtocolType = null; + @JSONField(ordinal = 6) + private String jks = ""; + @JSONField(ordinal = 7) + private String jksPwd = ""; + + public SslProtocolType sslProtocolType() throws Exception { + if (StringUtil.notEmptyOrNull(sslProtocolType)) { + return SslProtocolType.of(sslProtocolType); + } + return SslProtocolType.TLSV12; + } + + public SSLContext sslContext() throws Exception { + return SslContextServer.sslContext(sslProtocolType(), jks, jksPwd); + } + +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java new file mode 100644 index 0000000..479a701 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java @@ -0,0 +1,15 @@ +package wxdgaming.boot.spring.starter.i; + +import java.lang.annotation.*; + +/** + * 启动 + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2024-08-01 20:24 + */ +@Documented +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface OnClose { +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java new file mode 100644 index 0000000..c1b71c4 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java @@ -0,0 +1,15 @@ +package wxdgaming.boot.spring.starter.i; + +import java.lang.annotation.*; + +/** + * 启动 + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2024-08-01 20:24 + */ +@Documented +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface OnStart { +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java index dfe4a9b..9139e8e 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java @@ -1,6 +1,5 @@ package wxdgaming.boot.spring.starter.service; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import wxdgaming.boot.spring.starter.BootStarter; @@ -14,8 +13,6 @@ import wxdgaming.boot.spring.starter.BootStarter; @RestController public class GMController { - @Autowired LuaService luaService; - @GetMapping("/reload/jar") public String reload_jar() throws Exception { BootStarter.reload(); @@ -24,7 +21,6 @@ public class GMController { @GetMapping("/reload/lua") public String reload_lua() throws Exception { - luaService.init(); return "reload/lua"; } diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java index c82b5aa..cc16978 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java @@ -14,7 +14,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig; * @author: wxd-gaming(無心道, 15388152619) * @version: 2023-12-11 18:18 **/ -@Order(100) @Component @ConditionalOnProperty(value = "database.mysql.dbHost") public class MysqlService extends MysqlDataHelper implements Ordered { diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java index 9072ac2..d5445a7 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java @@ -13,7 +13,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig; * @author: wxd-gaming(無心道, 15388152619) * @version: 2023-12-11 18:18 **/ -@Order(101) @Component @ConditionalOnProperty(value = "database.mysql1.dbHost") public class MysqlService1 extends MysqlDataHelper { diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java index ca4e933..96865ae 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java @@ -13,7 +13,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig; * @author: wxd-gaming(無心道, 15388152619) * @version: 2023-12-11 18:18 **/ -@Order(102) @Component @ConditionalOnProperty(value = "database.mysql2.dbHost") public class MysqlService2 extends MysqlDataHelper { diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java index 1d7f8e8..7055957 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java @@ -14,7 +14,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig; * @author: wxd-gaming(無心道, 15388152619) * @version: 2023-12-11 18:18 **/ -@Order(103) @Component @ConditionalOnProperty(value = "database.mysql3.dbHost") public class MysqlService3 extends MysqlDataHelper implements Ordered { diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java index a6063c9..7145112 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java @@ -13,7 +13,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig; * @author: wxd-gaming(無心道, 15388152619) * @version: 2023-12-11 18:19 **/ -@Order(200) @Component @ConditionalOnProperty(value = "database.redis.dbHost") public class RedisService extends RedisDataHelper { diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java index a8d8e4d..cd80a3d 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java @@ -12,7 +12,6 @@ import wxdgaming.boot.batis.redis.RedisDataHelper; * @author: wxd-gaming(無心道, 15388152619) * @version: 2023-12-11 18:19 **/ -@Order(201) @Component @ConditionalOnProperty(value = "database.redis1.dbHost") public class RedisService1 extends RedisDataHelper { diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java new file mode 100644 index 0000000..d1c652b --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java @@ -0,0 +1,49 @@ +package wxdgaming.boot.spring.starter.service.net; + +import io.netty.buffer.ByteBuf; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Component; +import wxdgaming.boot.net.ts.TcpServer; +import wxdgaming.boot.net.ts.TcpSession; +import wxdgaming.boot.spring.starter.config.NetConfig; +import wxdgaming.boot.spring.starter.config.bean.TcpConfig; +import wxdgaming.boot.spring.starter.i.OnClose; +import wxdgaming.boot.spring.starter.i.OnStart; + +/** + * tcp server + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2023-12-11 18:20 + **/ +@Component +@ConditionalOnProperty(value = "net-config.tcpSocket.port") +public class TsService extends TcpServer { + + @Autowired + public TsService(NetConfig netConfig) throws Exception { + TcpConfig config = netConfig.getTcpSocket(); + setName(config.getName()) + .setHost(config.getHost()) + .setWanIp(config.getWanIp()) + .setPort(config.getPort()) + .setSslType(config.sslProtocolType()) + .setSslContext(config.sslContext()) + .initBootstrap(); + } + + @Override public void read(TcpSession session, ByteBuf byteBuf) { + super.read(session, byteBuf); + } + + @OnClose + @Override public void close() { + super.close(); + } + + @OnStart + @Override public void open() { + super.open(); + } +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java new file mode 100644 index 0000000..13e3007 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java @@ -0,0 +1,49 @@ +package wxdgaming.boot.spring.starter.service.net; + +import io.netty.buffer.ByteBuf; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Component; +import wxdgaming.boot.net.ts.TcpServer; +import wxdgaming.boot.net.ts.TcpSession; +import wxdgaming.boot.spring.starter.config.NetConfig; +import wxdgaming.boot.spring.starter.config.bean.TcpConfig; +import wxdgaming.boot.spring.starter.i.OnClose; +import wxdgaming.boot.spring.starter.i.OnStart; + +/** + * tcp server + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2023-12-11 18:20 + **/ +@Component +@ConditionalOnProperty(value = "net-config.tcpSocket1.port") +public class TsService1 extends TcpServer { + + @Autowired + public TsService1(NetConfig netConfig) throws Exception { + TcpConfig config = netConfig.getTcpSocket1(); + setName(config.getName()) + .setHost(config.getHost()) + .setWanIp(config.getWanIp()) + .setPort(config.getPort()) + .setSslType(config.sslProtocolType()) + .setSslContext(config.sslContext()) + .initBootstrap(); + } + + @Override public void read(TcpSession session, ByteBuf byteBuf) { + super.read(session, byteBuf); + } + + @OnClose + @Override public void close() { + super.close(); + } + + @OnStart + @Override public void open() { + super.open(); + } +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java new file mode 100644 index 0000000..a6fbd57 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java @@ -0,0 +1,44 @@ +package wxdgaming.boot.spring.starter.service.net; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import wxdgaming.boot.net.web.ws.WebSession; +import wxdgaming.boot.net.web.ws.WebSocketServer; +import wxdgaming.boot.spring.starter.config.NetConfig; +import wxdgaming.boot.spring.starter.config.bean.TcpConfig; +import wxdgaming.boot.spring.starter.i.OnClose; +import wxdgaming.boot.spring.starter.i.OnStart; + +/** + * web socket service + * + * @author: wxd-gaming(無心道, 15388152619) + * @version: 2023-12-11 17:49 + **/ +@Order(1) +@Component +@ConditionalOnProperty(value = "net-config.webSocket.port") +public class WsService extends WebSocketServer { + + public WsService(NetConfig netConfig) throws Exception { + TcpConfig config = netConfig.getWebSocket(); + setName(config.getName()) + .setHost(config.getHost()) + .setWanIp(config.getWanIp()) + .setPort(config.getPort()) + .setSslType(config.sslProtocolType()) + .setSslContext(config.sslContext()) + .initBootstrap(); + } + + @OnClose + @Override public void close() { + super.close(); + } + + @OnStart + @Override public void open() { + super.open(); + } +} diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java index cbfd625..5f37e85 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java @@ -11,6 +11,5 @@ public class B1 implements AutoCloseable { } @Override public void close() throws Exception { - System.out.println("\n\nclose() " + this.getClass() + "\n\n"); } } diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml new file mode 100644 index 0000000..5fcdf31 --- /dev/null +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml @@ -0,0 +1,21 @@ +net-config: + tcpSocket: + name: "g1" + host: "*" + wanIp: "127.0.0.1" + port: 17000 + + tcpSocket1: + name: "g2" + host: "*" + wanIp: "127.0.0.1" + port: 17001 + + webSocket: + name: "g1" + host: "*" + wanIp: "127.0.0.1" + port: 18000 + sslProtocolType: "TLSv1" + jks: "jks/wxdtest-1.8.jks" + jksPwd: "jks/wxdtest-1.8.jks.pwd" \ No newline at end of file diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml index c7fa222..6d7c330 100644 --- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml +++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml @@ -6,7 +6,7 @@ server: spring: profiles: - active: thread,db-mysql,db-redis + active: thread,db-mysql,db-redis,net web: resources: chain: