Просмотр полной версии : Прогресс приема и передачи (!) данных
Нужно принять некоторое количество данных (к примеру XML) с URL (при этом слушать прогресс загрузки) и после полной загрузки передать их на другой URL (тоже с прослушкой прогресса).
Конечной целью является замер скорости приема и передачи на машине клиента (который грузит флеш).
С приемом вопросов нет, вот как быть с передачей? Как обрабатывать прогресс?
А в чем именно загвоздка?
А в чем именно загвоздка?
в том что у встроенных классов нет событий, которые бы позволяли слушать прогресс отправки. Или я не внимательно читал Help?
BlooDHounD
27.10.2007, 00:58
слушать прогресс отправки флэш не умеет, так как отправкой занимается не он а система. он лиш отдаёт данные системе. происходит это почти мнгновенно. поэтому и прогресса нету. прогресс приёма отслеживается только потому что система не умеет забирать данные мгновенно.
А зачем нам прогресс?! Мы просто отправляем n байт на сервер, за время t - получаем в итоге скорость выгрузки. Или я чего то не понимаю?
Нужно что ли реалтайм показывать сколько уже выгрузилось?
P.S. FileReference - при аплоаде дает смотреть прогресс кстати!
Нужно что ли реалтайм показывать сколько уже выгрузилось?
смотри: вот здесь (http://speedtest.net/) (speedtest.net) показывается исходящая и входящая скорость реалтайм, т.е. в ходе всего измерения показывается средняя скорость. Фактически требуется создать аналог этого.
А зачем нам прогресс?! Мы просто отправляем n байт на сервер, за время t - получаем в итоге скорость выгрузки. Или я чего то не понимаю?
как сказал BlooDHounD, это время t будет стремиться к нулю.
P.S. FileReference - при аплоаде дает смотреть прогресс кстати!
если ты успел посмотреть ссылку выше, то наверное заметил, что участие клиента там минимальное. Он всего лишь кликает по серваку, с которым будет общаться клиент, а FileReference без диалога с клиентом не работает.
Что-то мне подсказывает что на speedtest.net одним флешем не обошлись!
Что-то мне подсказывает что на speedtest.net одним флешем не обошлись!
Да конечно, флэш там занимаеться только выводом данных.
А не может быть так, что это манипуляция таймштампами? Т.е. тупо замеряется время отправки.
Скажем сервер при формировании XML'ки по запросу добавляет в неё текущий штамп времени, затем флэшка добавляет к этому числу время загрузки, и отправляет это всё обратно на сервак, где он смотрит разницу во времени, и отдаёт обратно ответ о скорости аплоада.
А не может быть так, что это манипуляция таймштампами? Т.е. тупо замеряется время отправки.
Нет, по ссылке смотри - скорость отображается в реалтайме.
В этом (http://speedtest.net/) примере флешка только как оболчка, это точно.
А по сокету всякую билиберду отправлять?
Class XMLSocket
...
- progressHandler(): listens for the progress events, dispatched when a call to send() has been made and while the send is ongoing.
т.е. этот слушатель покажет нам прогресс отправки всякой билиберды ?
Ну отправляем, скажем, пакеты по 1024 байт и засекаем время отправки.
Как-то так. Даже сервер может просто открытый порт держать и все.
Во внутренностях той флешки не копался, ибо лень.
BlooDHounD
27.10.2007, 17:37
сокет не будет мониторить данные :) все евенты прогрессов во флэше это прогрессы прихода данных а не ухода :) флэш отправляет данные мгновенно. он не знает ничего про скорость твоего коннекта. он просто посылает данные в очередь на отправку.
...все евенты прогрессов во флэше это прогрессы прихода данных а не ухода :) ...
за исключением FileReference, конечно :away:
=))
Если надо прямо во флеше все, и реалтайм, то предлагаю сделать так.
Берем большое известное колличество данных и начинаем слать на сервер.
Между тем, делая постоянные запросы к серверу, на получение уже загруженного колличества данных. Отсюда реалтайм вычисляем.
=))
Если надо прямо во флеше все, и реалтайм, то предлагаю сделать так.
Берем большое известное колличество данных и начинаем слать на сервер.
Между тем, делая постоянные запросы к серверу, на получение уже загруженного колличества данных. Отсюда реалтайм вычисляем.
хехе
не факт что "запросы на получение уже загруженного колличества данных" пробьются во время "постоянные запросы к серверу", которые, по идее, должны вообще забить канал на максимум чтоб измерить его скорость :)
Исходящий канал, да, но входящий нет. Стоит поробовать все таки =) Еще есть варианты с использованием яваскрипта, просто нужно погуглить ... 8)))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.