Zdalne sterowanie komputerem poprzez przeglądarkę

Około pół roku temu postanowiłem stworzyć program do sterowania komputerem poprzez przeglądarkę. Zacząłem od prostego, jednogniazdowego serwera HTTP, który przesyłał obrazy do przeglądarki i otrzymywał współrzędne kursora do kontroli.

Na pewnym etapie zdałem sobie sprawę, że technologia WebRTC świetnie nadaje się do tych celów. Przeglądarka Chrome ma takie rozwiązanie, instaluje się ją poprzez rozszerzenie. Ale chciałem stworzyć lekki program, który działałby bez instalacji.

Najpierw próbowałem skorzystać z biblioteki udostępnionej przez Google, ale po kompilacji zajmuje ona 500MB. Musiałem zaimplementować cały stos WebRTC niemal od zera i udało mi się zmieścić wszystko w pliku exe o wielkości 2.5 MB. Znajomy pomógł z interfejsem w JS i tak wyszło.

Uruchommy program:

Zdalne sterowanie komputerem poprzez przeglądarkę
Otwórz link w zakładce przeglądarki i uzyskaj pełny dostęp do pulpitu:

Zdalne sterowanie komputerem poprzez przeglądarkę
Krótka animacja procesu konfiguracji połączenia:

Zdalne sterowanie komputerem poprzez przeglądarkę
Obsługiwane przez Chrome, Firefox, Safari, Opera.

Możliwe jest przesyłanie dźwięku, połączenia audio, zarządzanie schowkiem, przesyłanie plików i wywoływanie klawiszy skrótu.

Pracując nad programem musiałem przestudiować kilkanaście RFC i zrozumieć, że w Internecie nie ma wystarczającej ilości informacji na temat działania protokołu WebRTC. Chcę napisać artykuł na temat zastosowanych w nim technologii, chciałbym dowiedzieć się, które z poniższych pytań interesują społeczność:

  • Protokół opisu danych strumieniowych SDP
  • kandydatów ICE i ustanowienie połączenia pomiędzy dwoma punktami, serwerami STUN i TURN
  • Połączenie DTLS i transfer kluczy do sesji RTP
  • Protokoły RTP i RTСP z szyfrowaniem do przesyłania danych multimedialnych
  • Przenieś H264, VP8 i Opus przez RTP
  • Połączenie SCTP do przesyłania danych binarnych

Źródło: www.habr.com

Dodaj komentarz