diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/decoder/YouDianProtocolDecoder.java b/jsowell-netty/src/main/java/com/jsowell/netty/decoder/YouDianProtocolDecoder.java index 0afba46f5..c0e1f7422 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/decoder/YouDianProtocolDecoder.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/decoder/YouDianProtocolDecoder.java @@ -61,13 +61,13 @@ public class YouDianProtocolDecoder extends ByteToMessageDecoder { } // 检查包头是否是 68 协议 - if (buffer.readableBytes() >= HEADER_LENGTH_68) { - if (buffer.getUnsignedByte(beginReader) == 0x68) { - // 处理 68 协议 - decode68Message(buffer, out, beginReader); - return; - } - } + // if (buffer.readableBytes() >= HEADER_LENGTH_68) { + // if (buffer.getUnsignedByte(beginReader) == 0x68) { + // // 处理 68 协议 + // decode68Message(buffer, out, beginReader); + // return; + // } + // } // 未知协议,还原读指针 buffer.resetReaderIndex(); @@ -85,34 +85,34 @@ public class YouDianProtocolDecoder extends ByteToMessageDecoder { } // 判断是否为68包头 - private boolean isStartOf68Header(ByteBuf buffer, int beginReader) { - if (buffer.readableBytes() >= HEADER_LENGTH_68) { - return buffer.getUnsignedByte(beginReader) == 0x68; - } - return false; - } + // private boolean isStartOf68Header(ByteBuf buffer, int beginReader) { + // if (buffer.readableBytes() >= HEADER_LENGTH_68) { + // return buffer.getUnsignedByte(beginReader) == 0x68; + // } + // return false; + // } // 处理68协议消息 - private void decode68Message(ByteBuf buffer, List out, int beginReader) { - // 检查剩余数据是否足够 - if (buffer.readableBytes() < HEADER_LENGTH_68 + 1 + 2) { - buffer.readerIndex(beginReader); - return; - } - - // 获取消息长度 - int length = buffer.getUnsignedByte(beginReader + HEADER_LENGTH_68); - // 检查剩余数据是否足够 - if (buffer.readableBytes() < HEADER_LENGTH_68 + 1 + length + 2) { - buffer.readerIndex(beginReader); - return; - } - - // 读取 data 数据 最后+2是帧校验域长度 - ByteBuf frame = buffer.retainedSlice(beginReader, HEADER_LENGTH_68 + 1 + length + 2); - buffer.readerIndex(beginReader + HEADER_LENGTH_68 + 1 + length + 2); - out.add(frame); - } + // private void decode68Message(ByteBuf buffer, List out, int beginReader) { + // // 检查剩余数据是否足够 + // if (buffer.readableBytes() < HEADER_LENGTH_68 + 1 + 2) { + // buffer.readerIndex(beginReader); + // return; + // } + // + // // 获取消息长度 + // int length = buffer.getUnsignedByte(beginReader + HEADER_LENGTH_68); + // // 检查剩余数据是否足够 + // if (buffer.readableBytes() < HEADER_LENGTH_68 + 1 + length + 2) { + // buffer.readerIndex(beginReader); + // return; + // } + // + // // 读取 data 数据 最后+2是帧校验域长度 + // ByteBuf frame = buffer.retainedSlice(beginReader, HEADER_LENGTH_68 + 1 + length + 2); + // buffer.readerIndex(beginReader + HEADER_LENGTH_68 + 1 + length + 2); + // out.add(frame); + // } // 处理DNY协议消息 private void decodeDnyMessage(ByteBuf buffer, List out, int beginReader) { diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java b/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java index 4c318795a..b1e9b06b5 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/server/NettyServerManager.java @@ -96,6 +96,7 @@ public class NettyServerManager implements CommandLineRunner { .handler(new LoggingHandler(LogLevel.DEBUG)) .option(ChannelOption.SO_BACKLOG, 128) .option(ChannelOption.SO_REUSEADDR, true) + .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT) // 启用池化内存分配器 .childOption(ChannelOption.SO_KEEPALIVE, true) .childOption(ChannelOption.SO_REUSEADDR, true) .childHandler(electricBicyclesServerChannelInitializer)