![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
var stream:Object = new Object(); var LocalTime:Date = new Date(); stream.LOCALTIME = LocalTime.time.toString(); myStream.play(stream); FP при отсчете timestamp чанков принимает за НОЛЬ момент вызова метода NetConnection.Connect. Далее в каждом чанке timestamp равен разнице во времени между НОЛЕМ и моментом формирования чанка. Network Latency измеряем в самом начале коннекта, когда в обе стороны идет обмен пакетами, превышающими TCP MSS. Вызов myStream.play(stream) передает локальное время клиента. На сервере сравниваем chunk timestamp и значение LOCALTIME.VALUE, по которому можно вычислить момент начала сеанса. Далее зная NetLatency вычисляем расхождение Tdelta между часами сервера и клиента. Если прибавить Tdelta к timestamp чанка, получаем точное время отправки чанка от клиента на сервер. Дальше не имеет значения как будет меняться NetLatency, поскольку каждый прибывший на сервер пакет имеет timestamp - время отправки. Таким образом мы будем знать время отправки каждого чанка по серверным часам. А если засечь время прибытия чанка, можно в каждый момент времени знать BDP [IMG]http://img44.**************/img44/5671/timelineb.jpg[/IMG]
__________________
Trapatatupatupa Последний раз редактировалось Crenth; 20.08.2010 в 21:22. |
![]() |
Часовой пояс GMT +4, время: 01:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|