请告诉我如何增加我的ByteBuf初始容量。
在以下情况下:
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {
byte[] byteinput = new byte[in.readableBytes()];
in.readBytes(byteinput);
//further handling...
}
如果收到的消息超过了ByteBuf的最大容量,我将会收到截断数据。对于这个项目来说,获取完整的非分块消息非常重要。
我想我需要在引导程序的childOptions或者channel.config()中设置ByteBuf的初始容量... 在ChannelInitializer中。
我尝试了不同的方法,比如设置...
ch.config().setReceiveBufferSize(1024)
但是我仍然拥有相同的ByteBuf容量值(例如496)。
更新
我通过使用wireshark发现我的协议流量,测试用户客户端可以发送和接收高达1.4k的数据包而不会出现损坏。这个问题只涉及到netty的设置。操作系统套接字缓冲区不会截断消息。