Fjärrstyrd dator via webbläsare

För ungefär ett halvår sedan bestämde jag mig för att göra ett program för att styra en dator via en webbläsare. Jag började med en enkel ensocket HTTP-server som överförde bilder till webbläsaren och fick markörkoordinater för kontroll.

I ett visst skede insåg jag att WebRTC-tekniken är väl lämpad för dessa ändamål. Chrome-webbläsaren har en sådan lösning; den installeras via ett tillägg. Men jag ville göra ett lättviktsprogram som skulle fungera utan installation.

Först försökte jag använda biblioteket från Google, men efter kompilering tar det upp 500 MB. Jag var tvungen att implementera hela WebRTC-stacken nästan från början och lyckades få in allt i en 2.5 MB exe-fil. En vän hjälpte till med gränssnittet i JS, och det var detta vi slutade med.

Låt oss köra programmet:

Fjärrstyrd dator via webbläsare
Öppna länken i en webbläsarflik och få full åtkomst till skrivbordet:

Fjärrstyrd dator via webbläsare
En kort animering av anslutningsprocessen:

Fjärrstyrd dator via webbläsare
Stöds av Chrome, Firefox, Safari, Opera.

Det är möjligt att överföra ljud, ljudsamtal, hantera urklipp, överföra filer och ringa snabbtangenter.

När jag arbetade med programmet var jag tvungen att studera ett dussin RFC:er och förstå att det inte finns tillräckligt med information på Internet om hur WebRTC-protokollet fungerar. Jag vill skriva en artikel om teknikerna som används i den, jag skulle vilja ta reda på vilka av följande frågor som är av intresse för samhället:

  • SDP-strömningsdatabeskrivningsprotokoll
  • ICE-kandidater och upprättande av en koppling mellan två punkter, STUN- och TURN-servrar
  • DTLS-anslutning och överföring av nycklar till RTP-session
  • RTP- och RTСP-protokoll med kryptering för överföring av mediadata
  • Överför H264, VP8 och Opus via RTP
  • SCTP-anslutning för överföring av binär data

Källa: will.com

Lägg en kommentar