Vzdálené ovládání počítače přes prohlížeč

Před asi půl rokem jsem si dal za cíl vytvořit program pro ovládání počítače přes prohlížeč. Začal jsem s jednoduchým jednosocketovým HTTP serverem, který posílal obrázky do prohlížeče a získával souřadnice kurzoru pro ovládání.

Na určitém stupni jsem si uvědomil, že pro tyto účely se dobře hodí technologie WebRTC. Takové řešení nabízí prohlížeč Chrome a instaluje se prostřednictvím rozšíření. Ale chtěl jsem vytvořit lehký program, který bude fungovat bez instalace.

Nejprve jsem se pokusil použít knihovnu, kterou poskytuje Google, ale po zkompilování zabírá 500 MB. Musel jsem celý WebRTC stack implementovat téměř od nuly a podařilo se mi vše vměstnat do exe souboru o velikosti 2,5 MB. Kamarád mi pomohl s uživatelským rozhraním v JS, a tohle je výsledek.

Spustíme program:

Vzdálené ovládání počítače přes prohlížeč
Otevřeme odkaz v záložce prohlížeče a získáme plný přístup k pracovní ploše:

Vzdálené ovládání počítače přes prohlížeč
Malá animace procesu navazování spojení:

Vzdálené ovládání počítače přes prohlížeč
Podporuje se Chrome, Firefox, Safari, Opera.

Je možnost přenosu zvuku, audio hovoru, ovládání clipboardu, přenosu souborů a vyvolání klávesových zkratek.

Při práci na programu jsem musel prostudovat desítky RFC a pochopit, že na internetu je nedostatek informací o fungování protokolu WebRTC. Chci napsat článek o technologiích, které se v něm používají, a zajímá mě, které otázky z níže uvedených zajímají komunitu:

  • SDP protokol popisu streamovaných dat
  • ICE kandidáti a navazování spojení mezi dvěma body, STUN a TURN serveru
  • DTLS spojení a přenos klíčů do RTP relace
  • RTP a RTCP protokoly s šifrováním pro přenos mediálních dat
  • Přenos H264, VP8 a Opus přes RTP
  • SCTP spojení pro přenos binárních dat

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster