whirlwind
TDD infected, paranoid
Определение факта выкачки вариант для partial content
Скрипт выдает файлы, поддерживает докачку в том числе пределы X-Y в заголовках Range. Проблема в том, что некоторые (не знаю все не все но FlashGet, например) менеджеры закачек используют спецификаторы вида Y-, т.е. от определенной позиции и до конца файла. Итерация цикла выдачи выглядит примерно так
Буффер, допустим, 4кб. Копировать побайтно не устраивает. Можно инкрементировать некие счетчики-указатели после отдачи клиенту, но в этом случае счетчик будет меньше актуального, если будет выкачано меньше 4кб. (менеджер разрывает соединение, апач пришибает процесс, соотв. никаких подсчетов не состоится). Если читать до выдачи, получается наоборот - счетчик будет больше актуального, если клиент оборвет не выкачав 4кб. Меня интересует наиболее точный метод определения факта полной выдачи файла.
Какие варианты были опробованы, рассмотрены и по каким то причинам не подходят.
1. Подсчет по логам вебсервера
2. Лимит по времени
3. Определения факта выкачки по выдаче последнего куска (байта)
Еще какие нибудь идеи есть? Ведь как то же считают люди все это дело.
Спасибо
Скрипт выдает файлы, поддерживает докачку в том числе пределы X-Y в заголовках Range. Проблема в том, что некоторые (не знаю все не все но FlashGet, например) менеджеры закачек используют спецификаторы вида Y-, т.е. от определенной позиции и до конца файла. Итерация цикла выдачи выглядит примерно так
PHP:
$buffer = fread($fh,$read_buffer_size);
echo $buffer;
Какие варианты были опробованы, рассмотрены и по каким то причинам не подходят.
1. Подсчет по логам вебсервера
2. Лимит по времени
3. Определения факта выкачки по выдаче последнего куска (байта)
Еще какие нибудь идеи есть? Ведь как то же считают люди все это дело.
Спасибо

