From 0b25d230881ce4d56233a4834eb520d120f9a7a9 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期日, 25 六月 2023 17:15:50 +0800
Subject: [PATCH] 增加nettyTcp客户端
---
src/main/java/com/ard/utils/tcp/NettyTcpClient.java | 47 +++++++++++++++
src/main/resources/logback-spring.xml | 26 ++++++++
src/main/java/com/ard/utils/tcp/NettyTcpClientHandler.java | 43 ++++++++++++++
src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java | 2
src/main/java/com/ard/alarm/tube/service/TubeAlarmService.java | 5 +
5 files changed, 122 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java b/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
index f0d3071..1726943 100644
--- a/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
+++ b/src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
@@ -18,7 +18,7 @@
* @date 2023-02-11
*/
@Service
-@Slf4j
+@Slf4j(topic = "camera")
public class ArdCamerasServiceImpl implements IArdCamerasService {
@Resource
private ArdCamerasMapper ardCamerasMapper;
diff --git a/src/main/java/com/ard/alarm/tube/service/TubeAlarmService.java b/src/main/java/com/ard/alarm/tube/service/TubeAlarmService.java
index bb9cbdb..360f727 100644
--- a/src/main/java/com/ard/alarm/tube/service/TubeAlarmService.java
+++ b/src/main/java/com/ard/alarm/tube/service/TubeAlarmService.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson2.JSON;
import com.ard.utils.DateUtils;
import com.ard.utils.mqtt.MqttConsumer;
+import com.ard.utils.tcp.NettyTcpClient;
import com.ard.utils.udp.NettyUdpServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
@@ -28,6 +29,8 @@
public class TubeAlarmService {
@Resource
NettyUdpServer nettyUdpServer;
+ @Resource
+ NettyTcpClient nettyTcpClient;
@Value("${spring.netty.port}")
private Integer udpPort;
@Value("${spring.netty.enabled}")
@@ -40,6 +43,8 @@
}
nettyUdpServer.init(udpPort);
log.info("UDP鏈嶅姟宸茬粡鍚姩");
+ nettyTcpClient.init("112.98.126.2",1200);
+ log.info("TCP瀹㈡埛绔凡杩炴帴");
}
@Async("alarm")
diff --git a/src/main/java/com/ard/utils/tcp/NettyTcpClient.java b/src/main/java/com/ard/utils/tcp/NettyTcpClient.java
new file mode 100644
index 0000000..2d01793
--- /dev/null
+++ b/src/main/java/com/ard/utils/tcp/NettyTcpClient.java
@@ -0,0 +1,47 @@
+package com.ard.utils.tcp;
+
+import io.netty.bootstrap.Bootstrap;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.channel.socket.nio.NioSocketChannel;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @ClassName: NettyTcpClient
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�25鏃�17:00
+ * @Version: 1.0
+ **/
+@EnableAsync
+@Component
+@Slf4j(topic = "radar")
+public class NettyTcpClient {
+ @Async
+ public void init(String host, Integer port) {
+ NioEventLoopGroup group = new NioEventLoopGroup();
+ try {
+ Bootstrap bootstrap = new Bootstrap();
+ bootstrap.group(group)
+ .channel(NioSocketChannel.class)
+ .handler(new ChannelInitializer<SocketChannel>() {
+ @Override
+ protected void initChannel(SocketChannel ch) throws Exception {
+ ch.pipeline().addLast(new NettyTcpClientHandler());
+ }
+ });
+ ChannelFuture future = bootstrap.connect(host, port).sync();
+ future.channel().closeFuture().sync();
+
+ } catch (Exception ex) {
+ log.error("nettyTcp瀹㈡埛绔垵濮嬪寲寮傚父:" + ex.getMessage());
+ } finally {
+ group.shutdownGracefully();
+ }
+ }
+}
diff --git a/src/main/java/com/ard/utils/tcp/NettyTcpClientHandler.java b/src/main/java/com/ard/utils/tcp/NettyTcpClientHandler.java
new file mode 100644
index 0000000..5770cdc
--- /dev/null
+++ b/src/main/java/com/ard/utils/tcp/NettyTcpClientHandler.java
@@ -0,0 +1,43 @@
+package com.ard.utils.tcp;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.SimpleChannelInboundHandler;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.xml.bind.DatatypeConverter;
+
+/**
+ * @Description: tcp瀹㈡埛绔鐞�
+ * @ClassName: NettyTcpClientHandler
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�25鏃�17:02
+ * @Version: 1.0
+ **/
+@Slf4j
+public class NettyTcpClientHandler extends SimpleChannelInboundHandler<ByteBuf> {
+ @Override
+ protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg){
+ // 澶勭悊鎺ユ敹鍒扮殑娑堟伅
+ byte[] byteArray = new byte[msg.readableBytes()];
+ msg.getBytes(msg.readerIndex(), byteArray);
+ String hexString = DatatypeConverter.printHexBinary(byteArray);
+
+ log.info("Received: " + hexString);
+ }
+
+ @Override
+ public void channelActive(ChannelHandlerContext ctx) throws Exception {
+ // 褰撳鎴风杩炴帴鎴愬姛鍚庯紝鍙戦�佹秷鎭粰鏈嶅姟鍣�
+ ByteBuf message = ctx.alloc().buffer();
+ message.writeBytes("Hello, Server!".getBytes());
+ ctx.writeAndFlush(message);
+ }
+
+ @Override
+ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause){
+ // 鍙戠敓寮傚父鏃剁殑澶勭悊
+ cause.printStackTrace();
+ ctx.close();
+ }
+}
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index f993d77..7f2dac9 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -54,6 +54,28 @@
<onMismatch>DENY</onMismatch>
</filter>
</appender>
+ <!--閫氱敤鍏夌數鎶ヨ鏃ュ織杈撳嚭-->
+ <appender name="camera" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}/camera.log</file>
+ <!--寰幆鏀跨瓥锛氬熀浜庢椂闂村垱寤烘棩蹇楁枃浠�-->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!--鏃ュ織鏂囦欢鍚嶆牸寮�-->
+ <fileNamePattern>${log.path}/camera.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <!--鏃ュ織鏈�澶х殑鍘嗗彶60澶�-->
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <!--杩囨护鐨勭骇鍒�-->
+ <level>INFO</level>
+ <!--鍖归厤鏃剁殑鎿嶄綔锛氭帴鏀讹紙璁板綍锛�-->
+ <onMatch>ACCEPT</onMatch>
+ <!--涓嶅尮閰嶆椂鐨勬搷浣滐細鎷掔粷锛堜笉璁板綍锛�-->
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
<root level="DEBUG">
<appender-ref ref="console"/>
</root>
@@ -65,5 +87,9 @@
<root level="INFO">
<appender-ref ref="tube"/>
</root>
+ <!--閫氱敤鍏夌數鎶ヨ鎿嶄綔鏃ュ織-->
+ <root level="INFO">
+ <appender-ref ref="camera"/>
+ </root>
</configuration>
--
Gitblit v1.9.3