Thank you for the silent support :]
The solution is to use HttpObjectAggregator() and simply write a handler taking care of the byte-to-message process using the FullHttpRequest from the aggregator handler. The output of this decoder is the protobuf message:
public class ProtoRequestDecoder extends MessageToMessageDecoder<FullHttpRequest> {
@Override
protected void decode(ChannelHandlerContext ctx, FullHttpRequest msg, List<Object> out) throws Exception {
byte[] payloadBytes = new byte[msg.content().readableBytes()];
msg.content().readBytes(payloadBytes);
MyMessage protoMessage = MyMessage.parseFrom(payloadBytes);
out.add(protoMessage);
}
}