diff --git a/config/application-local.properties b/config/application-local.properties
index 121e252..4ff70ba 100644
--- a/config/application-local.properties
+++ b/config/application-local.properties
@@ -24,4 +24,4 @@ mybatis.mapper-locations=classpath*:mappers/*.xml
mybatis.type-aliases-package=com.zjyr.beidouservice.pojo.entry
#mybatis.configuration.default-enum-type-handler=com.dispose.common.CommonEnumHandler
#config log
-#logging.config=
\ No newline at end of file
+logging.config=file:config/logback.xml
\ No newline at end of file
diff --git a/config/application.properties b/config/application.properties
index 07f154c..7f4256f 100644
--- a/config/application.properties
+++ b/config/application.properties
@@ -1 +1 @@
-spring.profiles.active=local
\ No newline at end of file
+spring.profiles.active=local,user
\ No newline at end of file
diff --git a/config/logback.xml b/config/logback.xml
new file mode 100644
index 0000000..13a00dc
--- /dev/null
+++ b/config/logback.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+ [%d{yy-MM-dd HH:mm:ss:SSS}][%-5p][%c{0}][%M\(%L\)][%t]: %m%n
+
+
+
+
+ ${LOG_PATH}/biz.log
+
+ ${LOG_PATH}/biz.log.%d{yyyyMMdd}
+
+
+
+ [%d{yy-MM-dd HH:mm:ss:SSS}][%-5p][%c{0}][%M\(%L\)][%t]: %m%n
+
+
+
+ ${LOG_PATH}/system.log
+
+ ${LOG_PATH}/system.log.%d{yyyyMMdd}
+
+
+
+ [%d{yy-MM-dd HH:mm:ss:SSS}][%-5p][%c{0}][%M\(%L\)][%t]: %m%n
+
+
+
+
+ ${LOG_PATH}/data.log
+
+ ${LOG_PATH}/data.log.%d{yyyyMMdd}
+
+
+
+ [%d{yy-MM-dd HH:mm:ss:SSS}][%-5p][%c{0}][%M\(%L\)][%t]: %m%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index dcbbc90..26601e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -70,7 +70,7 @@
mapper-spring-boot-starter
4.2.3
-
+
diff --git a/src/main/java/com/zjyr/beidouservice/BaidouServiceApplication.java b/src/main/java/com/zjyr/beidouservice/BaidouServiceApplication.java
new file mode 100644
index 0000000..474d290
--- /dev/null
+++ b/src/main/java/com/zjyr/beidouservice/BaidouServiceApplication.java
@@ -0,0 +1,24 @@
+package com.zjyr.beidouservice;
+
+import com.zjyr.beidouservice.adapter.impl.netty.impl.TcpServer;
+import jakarta.annotation.Resource;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+@MapperScan(basePackages = {"com.zjyr.beidouservice.mapper"})
+public class BaidouServiceApplication implements ApplicationRunner {
+ @Resource
+ private TcpServer tcpServer;
+ public static void main(String[] args) {
+ SpringApplication.run(BaidouServiceApplication.class, args);
+ }
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ tcpServer.start();
+ }
+}
diff --git a/src/main/java/com/zjyr/beidouservice/TunnelServiceApplication.java b/src/main/java/com/zjyr/beidouservice/TunnelServiceApplication.java
deleted file mode 100644
index 7257c23..0000000
--- a/src/main/java/com/zjyr/beidouservice/TunnelServiceApplication.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.zjyr.beidouservice;
-
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-@MapperScan(basePackages = {"com.zjyr.beidouservice.mapper"})
-public class TunnelServiceApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(TunnelServiceApplication.class, args);
- }
-
-}
diff --git a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ChannelInit.java b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ChannelInit.java
new file mode 100644
index 0000000..f318a73
--- /dev/null
+++ b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ChannelInit.java
@@ -0,0 +1,30 @@
+package com.zjyr.beidouservice.adapter.impl.netty;
+
+import com.zjyr.beidouservice.adapter.impl.netty.decode.YuanRongProtocolDecode;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.handler.codec.string.StringDecoder;
+import io.netty.handler.codec.string.StringEncoder;
+import io.netty.handler.timeout.IdleStateHandler;
+import io.netty.util.CharsetUtil;
+import jakarta.annotation.Resource;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+@Component
+@RequiredArgsConstructor
+public class ChannelInit extends ChannelInitializer {
+ @Resource
+ private MessageHandler messageHandler;
+
+ @Override
+ protected void initChannel(SocketChannel channel) {
+ channel.pipeline()
+ .addLast("idle", new IdleStateHandler(0, 0, 60, TimeUnit.SECONDS))
+ .addLast("encode", new YuanRongProtocolDecode())
+ .addLast("decode", new StringDecoder(CharsetUtil.UTF_8))
+ .addLast("message", messageHandler);
+ }
+}
diff --git a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ISocketServer.java b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ISocketServer.java
new file mode 100644
index 0000000..67d81e0
--- /dev/null
+++ b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ISocketServer.java
@@ -0,0 +1,10 @@
+package com.zjyr.beidouservice.adapter.impl.netty;
+
+import jakarta.annotation.PreDestroy;
+
+public interface ISocketServer {
+ void start() throws Exception;
+
+ @PreDestroy
+ void destory() throws InterruptedException;
+}
diff --git a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/MessageHandler.java b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/MessageHandler.java
new file mode 100644
index 0000000..60c5fd5
--- /dev/null
+++ b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/MessageHandler.java
@@ -0,0 +1,46 @@
+package com.zjyr.beidouservice.adapter.impl.netty;
+
+import com.zjyr.beidouservice.misc.HelperUtils;
+import com.zjyr.beidouservice.pojo.vo.YuanRongBinProtocol;
+import io.netty.channel.ChannelHandler;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.handler.timeout.IdleStateEvent;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@ChannelHandler.Sharable
+@RequiredArgsConstructor
+public class MessageHandler extends SimpleChannelInboundHandler {
+ @Override
+ public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
+ log.info("{}:: Trigger Heart Signle", ctx.channel().id());
+
+ if (evt instanceof IdleStateEvent) {
+
+ } else {
+ super.userEventTriggered(ctx, evt);
+ }
+ }
+
+ @Override
+ public void channelRead0(ChannelHandlerContext ctx, YuanRongBinProtocol message) throws Exception {
+ log.info("{}:: Receive Message: {}", ctx.channel().id(), HelperUtils.bytesToHexString(message.getStart()));
+ }
+
+ @Override
+ public void channelActive(ChannelHandlerContext ctx) throws Exception {
+ log.info("{}:: Connected", ctx.channel().id());
+ super.channelActive(ctx);
+ }
+
+ @Override
+ public void channelInactive(ChannelHandlerContext ctx) throws Exception {
+ log.info("{}:: Disonnected", ctx.channel().id());
+ super.channelActive(ctx);
+ ctx.close();
+ }
+}
diff --git a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/decode/YuanRongProtocolDecode.java b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/decode/YuanRongProtocolDecode.java
new file mode 100644
index 0000000..a4319f0
--- /dev/null
+++ b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/decode/YuanRongProtocolDecode.java
@@ -0,0 +1,25 @@
+package com.zjyr.beidouservice.adapter.impl.netty.decode;
+
+import com.zjyr.beidouservice.pojo.vo.YuanRongBinProtocol;
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.ByteToMessageDecoder;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+@RequiredArgsConstructor
+public class YuanRongProtocolDecode extends ByteToMessageDecoder {
+ @Override
+ protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, List