Chcę sprawdzić ping z przeglądarki na serwer.

Ping / Latence nie powinien być z serwera, ale z maszyny klienta.

Widziałem witryny takie jak Pingtest.net, dzięki czemu można zrobić z przeglądarki.

Każdy język zrobi.

Ping serwer może być również testowany przez pakiet UDP inny niż Normalny Ping Shell Ping.

Jak powinienem postąpić. ?

1
user871457 20 sierpień 2012, 13:53

3 odpowiedzi

Najlepsza odpowiedź

Spróbuj użyć xmlhttpequest () dla JavaScript . Celem jest wykonanie około 10 obiektów i umieścić je w tablicy. Następnie użyj OnreadyStatechange w każdym z nich. W przypadku jego funkcji, użyj statusu 1, aby rozpocząć timer i status 3, aby zakończyć timer. Użyj daty obiektu (), aby uzyskać czasy.

To cały pomysł za rozwiązaniem. Jeśli potrzebujesz więcej komentarzy mojej odpowiedzi, a spróbuję uczynić go bardziej kompletnym i "łyżką".


Zakładając, że wiesz, jak zaprogramować w JavaScript, jest to jeden pomysł na możliwe rozwiązanie: Najpierw utworzysz tablicę, w której wstawisz w każdej pozycji instancji XMLHTTPREQUEST (). Następnie utworzysz funkcję, która zwraca funkcję, w której:
Funkcja zewnętrzna zapisze pewne identyfikację w kierunku żądania "bieżącego", w tym odniesienie do instancji. Ta funkcja ma być wykonana od razu.
Wewnętrzna funkcja ma być używana do wykonania stanu i wiedzieć, kiedy "rozpocząć" timer i kiedy "zatrzymać" timer. Zadbaj o otwarcie połączenia i wysyłanie nagłówków do wszystkiego, poczekaj, aby uzyskać odpowiedź i wreszcie zarejestrować czasy, które masz. Zrób trochę matematyki i dostajesz ping.

To cały pomysł za tym. Powodzenia!

1
brunoais 20 sierpień 2012, 15:25
<script type="text/javascript">
try {
  netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
  alert("Permission UniversalBrowserRead denied.");
}

var req = new XMLHttpRequest();
    req.open('GET', 'http://www.mozilla.org/', false);.
    req.send();
    if(req.status == 200) {
        alert(req.responseText);
    }
0
totymedli 22 wrzesień 2013, 00:39

Wypróbuj - wywołałem pustą stronę strony, aby nie trafili do obliczania czasu na załadowanie, posłużył jako czas ping. FYI - nadal nie będzie taki sam jak czas ping mierzony przez uruchomienie polecenia ping.

function loadXMLDoc() {  
    var xhttp = new XMLHttpRequest(); 
    var ping = new Date;
    xhttp.open("GET", "http://cors-anywhere.herokuapp.com/blank.org/", false);
    xhttp.setRequestHeader('Cache-Control', 'no-cache');
    xhttp.send();
    if(xhttp.status == 200) {
             ping = new Date - ping;
             console.log('Ping ' + ping + 'ms');
    }
  }
0
user1416932 7 październik 2019, 22:43