Посмотри на заголовок

Idk, как конкретно сделать, пинг в javascript,

Но я сделал этот крошечный фрагмент, который возвращает

  • время отправки запроса,
  • время, когда сервер получил запрос (выполняется со стороны сервера)
  • и время, когда сервер отправил ответ.
async function getResponseTimeOnce(){
  var times = {};
  times.beforeRequest = Date.now();
  await fetch("https://randobytes.yimmee.repl.co/ping").then((serverReceive)=>{
    serverReceive.json().then((serverReceive)=>{
      times.serverReceive = serverReceive;
    });
    times.afterRequest = Date.now();
  });
  return times;
}

Все, что я спрашиваю: какие значения я должен вычесть, чтобы получить время пинга?

0
TGP1cccul8r 25 Сен 2021 в 23:08

2 ответа

Лучший ответ

В стандартных программах ping задержка всегда измеряется временем приема-передачи (RTT). Вы должны вычесть beforeRequest из afterRequest, чтобы получить разницу.

Источник: https://developer.mozilla.org/en-US / docs / Glossary / Round_Trip_Time_ (RTT)

$ ping example.com
PING example.com (216.58.194.174): 56 data bytes
64 bytes from 216.58.194.174: icmp_seq=0 ttl=55 time=25.050 ms
64 bytes from 216.58.194.174: icmp_seq=1 ttl=55 time=23.781 ms
64 bytes from 216.58.194.174: icmp_seq=2 ttl=55 time=24.287 ms
64 bytes from 216.58.194.174: icmp_seq=3 ttl=55 time=34.904 ms
64 bytes from 216.58.194.174: icmp_seq=4 ttl=55 time=26.119 ms
--- google.com ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 23.781/26.828/34.904/4.114 ms

Для этого конкретного приложения вы также можете рассмотреть возможность использования Performance API < / a>, чтобы получить отметку времени с высоким разрешением.

0
skyline3000 25 Сен 2021 в 20:53

Ping использует RTD / RTT (задержка / время приема-передачи). RTD следует рассчитывать с момента отправки запроса до момента получения ответа .

0
Tembero 25 Сен 2021 в 21:03