Fjernbetjening af computer via browser

For omkring seks måneder siden besluttede jeg at lave et program til at styre en computer gennem en browser. Jeg startede med en simpel enkelt-socket HTTP-server, der overførte billeder til browseren og modtog markørkoordinater til kontrol.

På et vist tidspunkt indså jeg, at WebRTC-teknologi er velegnet til disse formål. Chrome-browseren har en sådan løsning; den installeres via en udvidelse. Men jeg ville lave et letvægtsprogram, der ville fungere uden installation.

Først prøvede jeg at bruge biblioteket leveret af Google, men efter kompilering fylder det 500 MB. Jeg var nødt til at implementere hele WebRTC-stakken næsten fra bunden, og det lykkedes at passe alt ind i en 2.5 MB exe-fil. En ven hjalp med grænsefladen i JS, og det er det, vi endte med.

Lad os køre programmet:

Fjernbetjening af computer via browser
Åbn linket i en browserfane og få fuld adgang til skrivebordet:

Fjernbetjening af computer via browser
En kort animation af forbindelsesopsætningsprocessen:

Fjernbetjening af computer via browser
Understøttet af Chrome, Firefox, Safari, Opera.

Det er muligt at overføre lyd, lydopkald, administrere klippebordet, overføre filer og ringe til genvejstaster.

Mens jeg arbejdede på programmet, måtte jeg studere et dusin RFC'er og forstå, at der ikke er nok information på internettet om driften af ​​WebRTC-protokollen. Jeg vil skrive en artikel om de teknologier, der bruges i det, jeg vil gerne finde ud af, hvilke af følgende spørgsmål der er af interesse for fællesskabet:

  • SDP streaming data beskrivelse protokol
  • ICE-kandidater og etablering af forbindelse mellem to punkter, STUN- og TURN-servere
  • DTLS-forbindelse og overførsel af nøgler til RTP-session
  • RTP- og RTСP-protokoller med kryptering til overførsel af mediedata
  • Overfør H264, VP8 og Opus via RTP
  • SCTP-forbindelse til overførsel af binære data

Kilde: www.habr.com

Tilføj en kommentar