我对netty的FrameDecoder有如下问题。
- 数据包被分成 {n} 帧,然后 FrameDecoder 正确处理。
- 如果多个数据包组成一个帧并发送到服务器(当客户端连续发送小数据包数据时),则 FrameDecoder 仅读取第一个数据包。剩余的被忽略。
我可以让 FrameDecoder 继续执行剩余的数据吗?
public class BinaryFrameDecoder extends FrameDecoder {
@Override
protected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer){
if(buffer.readableBytes() < 2){
return null;
}
int length = buffer.getShort(buffer.readerIndex());
if(buffer.readableBytes() < length + 2){
return null;
}
buffer.skipBytes(2);
return buffer;
}
}