Netty 解决消息被截断问题
netty默认发送的长度为1024,超过这个长度的数据会被拆分成多个包发送,为了解决这个问题,netty提供了多个解码编码器供我们使用,这里使用LineBasedFrameDecoder。
首先看server端增加的配置:
1 | ServerBootstrap b = new ServerBootstrap(); // (2) |
其中重点是
1 | .childOption(ChannelOption.RCVBUF_ALLOCATOR, new AdaptiveRecvByteBufAllocator(64, 65535, 65535)) |
和
1 | ch.pipeline().addLast(new LineBasedFrameDecoder(1024)); |
然后是client端:
1 | client.group(group) |