Fjernkontroll av datamaskin via nettleser

For omtrent seks måneder siden bestemte jeg meg for å lage et program for å kontrollere en datamaskin gjennom en nettleser. Jeg startet med en enkel enkelt-socket HTTP-server som overførte bilder til nettleseren og mottok markørkoordinater for kontroll.

På et visst tidspunkt innså jeg at WebRTC-teknologi er godt egnet for disse formålene. Chrome-nettleseren har en slik løsning; den installeres via en utvidelse. Men jeg ville lage et lettvektsprogram som ville fungere uten installasjon.

Først prøvde jeg å bruke biblioteket levert av Google, men etter kompilering tar det opp 500 MB. Jeg måtte implementere hele WebRTC-stakken nesten fra bunnen av, og klarte å passe alt inn i en 2.5 MB exe-fil. En venn hjalp til med grensesnittet i JS, og det var dette vi endte opp med.

La oss kjøre programmet:

Fjernkontroll av datamaskin via nettleser
Åpne koblingen i en nettleserfane og få full tilgang til skrivebordet:

Fjernkontroll av datamaskin via nettleser
En kort animasjon av tilkoblingsoppsettprosessen:

Fjernkontroll av datamaskin via nettleser
Støttes av Chrome, Firefox, Safari, Opera.

Det er mulig å overføre lyd, lydanrop, administrere utklippstavlen, overføre filer og ringe hurtigtaster.

Mens jeg jobbet med programmet, måtte jeg studere et dusin RFC-er og forstå at det ikke er nok informasjon på Internett om driften av WebRTC-protokollen. Jeg vil skrive en artikkel om teknologiene som brukes i den, jeg vil gjerne finne ut hvilke av følgende spørsmål som er av interesse for fellesskapet:

  • SDP-databeskrivelsesprotokoll for streaming
  • ICE-kandidater og etablering av forbindelse mellom to punkter, STUN- og TURN-servere
  • DTLS-tilkobling og overføring av nøkler til RTP-sesjon
  • RTP- og RTСP-protokoller med kryptering for overføring av mediedata
  • Overfør H264, VP8 og Opus via RTP
  • SCTP-tilkobling for overføring av binære data

Kilde: www.habr.com

Legg til en kommentar