From 42b7163f5b4e62d14f70586c7c449d9c5c5e367b Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Fri, 9 Jun 2023 20:54:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8C=87=E5=AE=9A=E9=87=8D?= =?UTF-8?q?=E8=BF=9E=E9=97=B4=E9=9A=94=E3=80=81=E6=98=AF=E5=90=A6=E6=97=A0?= =?UTF-8?q?=E9=99=90=E9=87=8D=E8=BF=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../neutrinoproxy/client/config/ProxyConfig.java | 7 +++++++ .../neutrinoproxy/client/core/ProxyClientService.java | 10 +++++----- .../client/handler/ProxyMessageAuthHandler.java | 8 +++++++- neutrino-proxy-client/src/main/resources/app.yml | 5 ++++- neutrino-proxy-server/src/main/resources/app.yml | 2 +- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfig.java b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfig.java index 9f81668f..ceb5a195 100644 --- a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfig.java +++ b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfig.java @@ -41,5 +41,12 @@ public class ProxyConfig { private Integer threadCount; private String clientId; private Boolean transferLogEnable; + private Reconnection reconnection; + } + + @Data + public static class Reconnection { + private Integer intervalSeconds; + private Boolean unlimited; } } diff --git a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/core/ProxyClientService.java b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/core/ProxyClientService.java index 8953184e..48b92fce 100644 --- a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/core/ProxyClientService.java +++ b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/core/ProxyClientService.java @@ -49,10 +49,10 @@ public class ProxyClientService { @Inject("realServerBootstrap") private Bootstrap realServerBootstrap; private volatile Channel channel; - /** - * 重连间隔(秒) - */ - private static final long RECONNECT_INTERVAL_SECONDS = 5; +// /** +// * 重连间隔(秒) +// */ +// private static final long RECONNECT_INTERVAL_SECONDS = 5; /** * 重连次数 */ @@ -69,7 +69,7 @@ public class ProxyClientService { @Init public void init() { - this.reconnectExecutor.scheduleWithFixedDelay(this::reconnect, 10, RECONNECT_INTERVAL_SECONDS, TimeUnit.SECONDS); + this.reconnectExecutor.scheduleWithFixedDelay(this::reconnect, 10, proxyConfig.getClient().getReconnection().getIntervalSeconds(), TimeUnit.SECONDS); this.workerGroup = new NioEventLoopGroup(proxyConfig.getClient().getThreadCount()); realServerBootstrap.group(workerGroup); diff --git a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java index 9acdcc01..e0a05f17 100644 --- a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java +++ b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/handler/ProxyMessageAuthHandler.java @@ -1,6 +1,7 @@ package org.dromara.neutrinoproxy.client.handler; import com.alibaba.fastjson.JSONObject; +import org.dromara.neutrinoproxy.client.config.ProxyConfig; import org.dromara.neutrinoproxy.core.Constants; import org.dromara.neutrinoproxy.core.ExceptionEnum; import org.dromara.neutrinoproxy.core.ProxyMessage; @@ -10,6 +11,7 @@ import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.noear.solon.Solon; import org.noear.solon.annotation.Component; +import org.noear.solon.annotation.Inject; /** * 认证信息处理器 @@ -20,6 +22,8 @@ import org.noear.solon.annotation.Component; @Match(type = Constants.ProxyDataTypeName.AUTH) @Component public class ProxyMessageAuthHandler implements ProxyMessageHandler { + @Inject + private ProxyConfig proxyConfig; @Override public void handle(ChannelHandlerContext context, ProxyMessage proxyMessage) { String info = proxyMessage.getInfo(); @@ -30,7 +34,9 @@ public class ProxyMessageAuthHandler implements ProxyMessageHandler { // 客户端认证失败,直接停止服务 log.info("client auth failed , client stop."); context.channel().close(); - Solon.stop(); + if (!proxyConfig.getClient().getReconnection().getUnlimited()) { + Solon.stop(); + } } else if (ExceptionEnum.CONNECT_FAILED.getCode().equals(code) || ExceptionEnum.LICENSE_CANNOT_REPEAT_CONNECT.getCode().equals(code) ){ diff --git a/neutrino-proxy-client/src/main/resources/app.yml b/neutrino-proxy-client/src/main/resources/app.yml index 5eddcde7..01a69240 100644 --- a/neutrino-proxy-client/src/main/resources/app.yml +++ b/neutrino-proxy-client/src/main/resources/app.yml @@ -4,7 +4,7 @@ neutrino: proxy: logger: - level: info + level: ${LOG_LEVEL:info} protocol: max-frame-length: 2097152 length-field-offset: 0 @@ -25,3 +25,6 @@ neutrino: license-key: ${LICENSE_KEY:} client-id: ${CLIENT_ID:} transfer-log-enable: ${CLIENT_LOG:false} + reconnection: + interval-seconds: 10 + unlimited: false diff --git a/neutrino-proxy-server/src/main/resources/app.yml b/neutrino-proxy-server/src/main/resources/app.yml index f638242b..a2b4ec2c 100644 --- a/neutrino-proxy-server/src/main/resources/app.yml +++ b/neutrino-proxy-server/src/main/resources/app.yml @@ -4,7 +4,7 @@ server: neutrino: proxy: logger: - level: info + level: ${LOG_LEVEL:info} protocol: max-frame-length: ${MAX_FRAME_LENGTH:2097152} length-field-offset: 0