我的netty的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;
}
}
答案 0 :(得分:0)
如果你替换它应该有效:
return buffer;
使用:
return buffer.readBytes(length);
因为buffer
很可能包含多条消息。