From 3c66b754ee314ae87d0f2eda2fa86a30ea2304e7 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 14 三月 2025 18:32:30 +0800 Subject: [PATCH] 修改809对接bug --- ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/netty/client/NettyClient.java | 31 ++++++++++++++++++++++++++++--- 1 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/netty/client/NettyClient.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/netty/client/NettyClient.java index 91bf12d..9b44c88 100644 --- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/netty/client/NettyClient.java +++ b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/netty/client/NettyClient.java @@ -1,11 +1,16 @@ package com.ruoyi.dataInterchange.netty.client; +import com.alibaba.fastjson.JSON; +import com.ruoyi.dataInterchange.model.DOWNConnectReq; +import com.ruoyi.dataInterchange.model.enu.DataType; import com.ruoyi.dataInterchange.util.jtt809.common.ByteArrayUtil; import com.ruoyi.dataInterchange.util.jtt809.common.Jtt809Constant; import com.ruoyi.dataInterchange.util.jtt809.common.Jtt809Util; import com.ruoyi.dataInterchange.util.jtt809.decoder.Jtt809Decoder; import com.ruoyi.dataInterchange.util.jtt809.encoder.Jtt809Encoder; import com.ruoyi.dataInterchange.util.jtt809.gnsscenter.GnssCenterService; +import com.ruoyi.dataInterchange.util.jtt809.packet.common.OuterPacket; +import com.ruoyi.dataInterchange.wapper.UPConnect; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; @@ -14,6 +19,7 @@ import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.timeout.IdleStateHandler; +import lombok.extern.slf4j.Slf4j; import java.net.InetSocketAddress; import java.util.concurrent.TimeUnit; @@ -22,6 +28,7 @@ * @author zhibing.pu * @Date 2025/3/3 20:11 */ +@Slf4j public class NettyClient { /** * 连接IP @@ -44,7 +51,7 @@ * * @throws Exception */ - public void start(int code) throws Exception { + public void start(int inferiorPlatformId, int verifyCode) throws Exception { EventLoopGroup nioEventLoopGroup = null; try { //创建Bootstrap对象用来引导启动客户端 @@ -66,14 +73,32 @@ // 空闲检测处理器 触发空闲状态事件 读空闲:5秒 写空闲:7秒 读写空闲:10秒 pipeline.addLast(new IdleStateHandler(5, 7, 3, TimeUnit.SECONDS)); // 处理器 -// pipeline.addLast("handler", new NettyHandle()); + pipeline.addLast("handler", new NettyClientHandler()); } }); // • 调用Bootstrap.connect()来连接服务器 ChannelFuture f = bootstrap.connect().sync(); //将通道添加到缓存中,便于后期直接使用 Channel channel = f.channel(); - ChannelMap.addClientChannel(code, channel); + ChannelMap.addClientChannel(inferiorPlatformId, channel); + log.info("从链路连接成功"); + + //构建从链路请求 + DOWNConnectReq downConnectReq = new DOWNConnectReq(); + downConnectReq.setVerifyCode(verifyCode); + log.info("从链路连接请求({}):{}", DataType.DOWN_CONNECT_REQ.getCode(), JSON.toJSONString(downConnectReq)); + byte[] body = downConnectReq.encode(); + OuterPacket out = new OuterPacket(DataType.DOWN_CONNECT_REQ.getCode(), body); + channel.writeAndFlush(out); + channel.flush(); + + //缓存从链路地址 + UPConnect upConnect = new UPConnect(); + upConnect.setDownLinkIp(host); + upConnect.setDownLinkPort(port); + upConnect.setVerifyCode(verifyCode); + ChannelMap.addIpAndPort(inferiorPlatformId, upConnect); + // • 最后关闭EventLoopGroup来释放资源 f.channel().closeFuture().sync(); } finally { -- Gitblit v1.7.1