Расчет времени прохождения пакета в JavaScript
Мой сервер время от времени передает пакет клиенту браузера.
Есть ли способ выяснить, сколько времени потребовалось от пакета из:
server --> client
Я пытаюсь рассчитать время, поэтому в идеале моя функция JavaScript должна выглядеть так:
var travelTime = {amount of time it took packet to get to me};
setTimeout('myFunction()', 3000 + travelTime);
Кроме того, я не запрашиваю этот пакет, поэтому я не могу записать время отправки и записать время получения на стороне клиента. Этот пакетный запрос не является двунаправленным, так как я устанавливаю сокет с сервером, и сервер может просто отправить мне пакет.
Любой совет ценится!
РЕДАКТИРОВАТЬ: связь в стиле кометы
1 ответ
Вы можете включить временную метку в пакет, но это будет зависеть от того, синхронизируются ли обе системы с одинаковыми часами (например, с использованием NTP). Если у вас нет контроля над сервером и клиентом, то то, что вы спрашиваете, невозможно без обратной связи. Даже с синхронизацией NTP будет некоторое дрожание в зависимости от того, как часто синхронизируются часы. В обоих случаях ваш расчет задержки будет в любом случае только оценочным, с серьезными отклонениями при изменении условий сети, если клиент и сервер не находятся в одной локальной сети.