Technologia
Tak więc, na poziomie podstawowym, gdy łączysz, to pobiera stronę internetową przez HTTPS, witryny i serwera następnie ustanowić połączenie WebSockets, a następnie witryny i serwera korzysta z zewnętrznego serwera STUN do negocjowania WebRTC połączenia. Witryna następnie ustanawia niewiarygodny kanał danych za pomocą WebRTC i wysyła kilka pakietów do serwera, który je rejestruje, a następnie wysyła je z powrotem. Klient następnie zapisuje czasy pingów i które z nich otrzymał z powrotem. Serwer wysyła również log przez WebSockets, który pokazuje, które pakiety dotarły do celu, dzięki czemu można odróżnić straty pakietów wysyłania od strat pakietów pobierania.
Usługi używane
Tak więc, jeśli chodzi o konkretne technologie i wykorzystywane usługi:
- Certyfikat SSL jest dostarczany przez Let's Encrypt.
- Statyczna strona HTTPS jest hostowana na Netlify, który czerpie z GitHub.
- Serwer WebSocket i WebRTC jest hostowany w Linode.
- Ten serwer WebSocket i WebRTC działa Node.js jako oprogramowanie serwera.
- Node.js uruchamia uWebSockets.js, który z kolei uruchamia uWebSockets (który, będąc C++, jest znacznie szybszy niż JavaScript kiedykolwiek mógłby być).
- Serwer następnie używa wrtc do implementacji WebRTC w Node.js. (Ponieważ nie implementuje tego. WebRTC nie jest w rzeczywistości JavaScript, ale tylko API JavaScript w WebIDL).
- Używam darmowego, publicznego serwera STUN firmy Google (stun.l.google.com:19302), aby nawiązać połączenie ICE.
- Chart.js renderuje wykres słupkowy na dole wyników.
- Wszystko jest w zasadzie tylko ręcznie kodowane HTML, CSS, JS i Bash. Używam Mustache (w JavaScript) po stronie serwera do szablonowania stron, aby były łatwiejsze do przetłumaczenia (z widokami) i do zmiany wspólnych części (z partials).
- Ponadto, do tłumaczenia, I w dużej mierze (Ale nie całkowicie!) używane Google Translate. >.>
Jak również DeepL i Linguee były niesamowite pomoce, które całkowicie polecam.