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 80b9d87..103538b 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,11 +28,9 @@ 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 78942b8..7c3fced 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 @@ -45,8 +45,13 @@ public class MessageHandler extends SimpleChannelInboundHandler msgCont = MessageContent.builder().msgBody( + new HeartProtocol()).build(); + BaseBinaryProtocol h = BaseBinaryProtocol.builder().msgContent(msgCont) + .build(); + + ctx.writeAndFlush(h); } } else { super.userEventTriggered(ctx, evt); @@ -56,34 +61,23 @@ public class MessageHandler extends SimpleChannelInboundHandler { - //长时间操作,不至于长时间的业务操作导致Handler阻塞 - //log.info("{}:: Receive Message: {}", ctx.channel().id(), HelperUtils.bytesToHexString(message - // .getStart())); - }); + ctx.channel().eventLoop().execute(() -> { + //长时间操作,不至于长时间的业务操作导致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()); - - BaseBinaryProtocol h = BaseBinaryProtocol.builder() - .msgContent(MessageContent.builder() - .msgBody(new HeartProtocol()) - .build()) - .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()); + MessageContent msgCont = MessageContent.builder().msgBody(new HeartProtocol()) + .build(); + BaseBinaryProtocol h = BaseBinaryProtocol.builder().msgContent(msgCont).build(); ctx.writeAndFlush(h); super.channelActive(ctx); @@ -91,11 +85,8 @@ 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 b4a5735..790d0cd 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,13 +27,11 @@ public class YuanRongProtocolEncode extends MessageToByteEncoder extends MessageToByteEncoder extends MessageToByteEncoder