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 index 103538b..80b9d87 100644 --- a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ChannelInit.java +++ b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/ChannelInit.java @@ -28,9 +28,11 @@ public class ChannelInit extends ChannelInitializer { @Override protected void initChannel(SocketChannel channel) { - channel.pipeline().addLast("idle", new IdleStateHandler(0, 0, 60, TimeUnit.SECONDS)).addLast("decode", - new YuanRongProtocolDecode()) - .addLast("startFlag", new ProtocolStartEncode(2)).addLast("encode", new YuanRongProtocolEncode()) + channel.pipeline() + .addLast("idle", new IdleStateHandler(0, 0, 60, TimeUnit.SECONDS)) + .addLast("decode", new YuanRongProtocolDecode()) + .addLast("startFlag", new ProtocolStartEncode(2)) + .addLast("encode", new YuanRongProtocolEncode()) .addLast("message", messageHandler); } } 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 index aaeb407..78942b8 100644 --- a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/MessageHandler.java +++ b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/MessageHandler.java @@ -22,12 +22,14 @@ import java.util.concurrent.ConcurrentHashMap; /** * The type Message handler. + * + * @param the type parameter */ @Slf4j @Component @ChannelHandler.Sharable @RequiredArgsConstructor -public class MessageHandler extends SimpleChannelInboundHandler { +public class MessageHandler extends SimpleChannelInboundHandler> { /** * The constant ctxMap. */ @@ -43,7 +45,8 @@ public class MessageHandler extends SimpleChannelInboundHandler { + //长时间操作,不至于长时间的业务操作导致Handler阻塞 + //log.info("{}:: Receive Message: {}", ctx.channel().id(), HelperUtils.bytesToHexString(message + // .getStart())); + }); } @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { - InetSocketAddress sa = (InetSocketAddress) ctx.channel().remoteAddress(); + InetSocketAddress sa = (InetSocketAddress) ctx.channel() + .remoteAddress(); //List list = controlDeviceMapper.selectAll(); - log.info("{}:: Connected <-- {}:{}", ctx.channel().id(), sa.getAddress().getHostAddress(), sa.getPort()); - controlDeviceMapper.addControlDevice(ControlDevice.builder().deviceType(ControlDeviceTypeName.DEVICE_SOCKET_TCP) - .deviceAddr(sa.getAddress().getHostAddress()).build()); + log.info("{}:: Connected <-- {}:{}", ctx.channel() + .id(), sa.getAddress() + .getHostAddress(), sa.getPort()); + controlDeviceMapper.addControlDevice(ControlDevice.builder() + .deviceType(ControlDeviceTypeName.DEVICE_SOCKET_TCP) + .deviceAddr(sa.getAddress() + .getHostAddress()) + .build()); - BaseBinaryProtocol h = BaseBinaryProtocol.builder().msgContent( - MessageContent.builder().msgBody(new HeartProtocol()).build()).build(); + BaseBinaryProtocol h = BaseBinaryProtocol.builder() + .msgContent(MessageContent.builder() + .msgBody(new HeartProtocol()) + .build()) + .build(); ctx.writeAndFlush(h); super.channelActive(ctx); @@ -80,8 +91,11 @@ public class MessageHandler extends SimpleChannelInboundHandler out) throws Exception { - out.add(ctx.alloc().buffer(BaseBinaryProtocol.START.length()).writeBytes(BaseBinaryProtocol.START.getBytes())); + out.add(ctx.alloc() + .buffer(BaseBinaryProtocol.START.length()) + .writeBytes(BaseBinaryProtocol.START.getBytes())); super.encode(ctx, msg, out); } } diff --git a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/encode/YuanRongProtocolEncode.java b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/encode/YuanRongProtocolEncode.java index 790d0cd..b4a5735 100644 --- a/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/encode/YuanRongProtocolEncode.java +++ b/src/main/java/com/zjyr/beidouservice/adapter/impl/netty/encode/YuanRongProtocolEncode.java @@ -27,11 +27,13 @@ public class YuanRongProtocolEncode extends MessageToByteEncoder extends MessageToByteEncoder extends MessageToByteEncoder channelInit; /** * The Netty socket configure. @@ -50,10 +51,15 @@ public class TcpServer implements ISocketServer { */ private void tcpServer(int port) { try { - new ServerBootstrap().group(boosGroup, workerGroup).channel(NioServerSocketChannel.class).localAddress( - new InetSocketAddress(port)).childHandler(channelInit).option(ChannelOption.SO_BACKLOG, 128) - .childOption(ChannelOption.TCP_NODELAY, false).childOption(ChannelOption.SO_KEEPALIVE, - true).bind().sync(); + new ServerBootstrap().group(boosGroup, workerGroup) + .channel(NioServerSocketChannel.class) + .localAddress(new InetSocketAddress(port)) + .childHandler(channelInit) + .option(ChannelOption.SO_BACKLOG, 128) + .childOption(ChannelOption.TCP_NODELAY, false) + .childOption(ChannelOption.SO_KEEPALIVE, true) + .bind() + .sync(); log.info("Netty TCP Server Beginning Listen: {}", port); } catch (Exception e) { log.error(e.getMessage()); diff --git a/src/main/java/com/zjyr/beidouservice/pojo/vo/binary/QuerySensorProtocol.java b/src/main/java/com/zjyr/beidouservice/pojo/vo/binary/QuerySensorProtocol.java index 7912380..9dd7047 100644 --- a/src/main/java/com/zjyr/beidouservice/pojo/vo/binary/QuerySensorProtocol.java +++ b/src/main/java/com/zjyr/beidouservice/pojo/vo/binary/QuerySensorProtocol.java @@ -5,15 +5,24 @@ import lombok.Data; import java.util.List; +/** + * The type Query sensor protocol. + */ @Data @Builder public class QuerySensorProtocol { + /** + * The Province. + */ private byte province; /** * The City. */ private byte city; + /** + * The N control info. + */ private byte nControlInfo; /** * The Controll contents. diff --git a/src/test/java/com/zjyr/beidouservice/mapper/ControlDeviceMapperTest.java b/src/test/java/com/zjyr/beidouservice/mapper/ControlDeviceMapperTest.java index efcb19c..2fe93ed 100644 --- a/src/test/java/com/zjyr/beidouservice/mapper/ControlDeviceMapperTest.java +++ b/src/test/java/com/zjyr/beidouservice/mapper/ControlDeviceMapperTest.java @@ -2,15 +2,12 @@ package com.zjyr.beidouservice.mapper; import com.zjyr.beidouservice.common.impl.ControlDeviceTypeName; import com.zjyr.beidouservice.pojo.entry.ControlDevice; -import com.zjyr.beidouservice.pojo.entry.ControlDeviceType; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.annotation.Rollback; -import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -22,16 +19,18 @@ import java.util.List; public class ControlDeviceMapperTest { @Resource private ControlDeviceMapper controlDeviceMapper; + @Test public void a1_getAllControlDevice() { List typeList = controlDeviceMapper.selectAll(); Assertions.assertNotEquals(typeList.size(), 0); } - + @Test public void a2_addControlDevice() { - ControlDevice dev = ControlDevice.builder().deviceType(ControlDeviceTypeName.DEVICE_SOCKET_TCP).deviceAddr("127.0.0.2").build(); - int i = controlDeviceMapper.addControlDevice(dev); + ControlDevice dev = ControlDevice.builder().deviceType(ControlDeviceTypeName.DEVICE_SOCKET_TCP).deviceAddr( + "127.0.0.2").build(); + int i = controlDeviceMapper.addControlDevice(dev); System.out.println("Add " + i); } }