기술
그래서 기본적인 수준에서 접속하면 HTTPS를 통해 웹페이지를 다운로드하고 사이트와 서버가 WebSockets 연결을 설정한 다음 사이트와 서버가 외부 STUN 서버를 사용하여 WebRTC 연결을 협상합니다. 그런 다음 사이트는 WebRTC를 사용하여 신뢰할 수 없는 데이터 채널을 설정하고 많은 패킷을 서버로 보내고 서버는 이를 기록하고 바로 다시 보냅니다. 그런 다음 클라이언트는 ping 시간과 반환된 시간을 기록합니다. 서버는 또한 패킷을 구성한 WebSocket을 통해 로그를 전송하여 업로드 패킷 손실과 다운로드 패킷 손실을 구분할 수 있습니다.
사용한 서비스
따라서 사용된 특정 기술 및 서비스:
- SSL 인증서는 Let's Encrypt에서 제공합니다.
- 정적 HTTPS 웹사이트는 GitHub 에서 가져온 Netlify 에서 호스팅됩니다.
- WebSocket 및 WebRTC 서버는 Linode 로 호스팅됩니다.
- 이 WebSocket 및 WebRTC 서버는 Node.js 를 서버 소프트웨어로 실행합니다.
- Node.js는 uWebSockets.js를 실행하고, 차례로 uWebSockets 를 실행합니다(C++이므로 JavaScript보다 훨씬 빠름).
- 그런 다음 서버는 wrtc 를 사용하여 Node.js에서 WebRTC를 구현합니다. (그것을 구현하지 않기 때문입니다. WebRTC는 실제로 JavaScript가 아니라 WebIDL의 JavaScript API일 뿐입니다.)
- Google의 무료 공개 STUN 서버(stun.l.google.com:19302)를 사용하여 ICE 연결을 만듭니다.
- Chart.js 는 결과 하단에 막대 차트를 렌더링합니다.
- 모든 것은 기본적으로 수동으로 코딩된 HTML, CSS, JS 및 Bash입니다. 저는 서버 측에서 Mustache ( JavaScript에서 )를 사용하여 페이지를 템플릿화하여 페이지를 보다 쉽게 번역(보기 포함)하고 공통 부분(부분 포함)을 변경합니다.
- 또한 번역을 위해 Google 번역을 주로 사용했습니다. >.>
또한, DeepL 및 Linguee는 놀라운 내가 전적으로 추천하는 것이 도움이되었다.