Computerbediening op afstand via browser

Ongeveer zes maanden geleden besloot ik een programma te maken om een ​​computer via een browser te besturen. Ik begon met een eenvoudige HTTP-server met één socket die afbeeldingen naar de browser overbracht en cursorcoördinaten ontving voor controle.

Op een gegeven moment besefte ik dat WebRTC-technologie zeer geschikt is voor deze doeleinden. De Chrome-browser heeft zo'n oplossing; deze wordt via een extensie geïnstalleerd. Maar ik wilde een lichtgewicht programma maken dat zonder installatie zou werken.

Eerst heb ik geprobeerd de bibliotheek van Google te gebruiken, maar na compilatie neemt deze 500 MB in beslag. Ik moest de hele WebRTC-stack bijna helemaal opnieuw implementeren en slaagde erin alles in een exe-bestand van 2.5 MB te passen. Een vriend hielp met de interface in JS, en dit is wat we uiteindelijk hebben gekregen.

Laten we het programma uitvoeren:

Computerbediening op afstand via browser
Open de link in een browsertabblad en krijg volledige toegang tot het bureaublad:

Computerbediening op afstand via browser
Een korte animatie van het verbindingsconfiguratieproces:

Computerbediening op afstand via browser
Ondersteund door Chrome, Firefox, Safari, Opera.

Het is mogelijk om geluid te verzenden, audiogesprekken te voeren, het klembord te beheren, bestanden over te dragen en sneltoetsen te bellen.

Terwijl ik aan het programma werkte, moest ik een tiental RFC's bestuderen en begrijpen dat er niet genoeg informatie op internet staat over de werking van het WebRTC-protocol. Ik wil een artikel schrijven over de technologieën die daarin worden gebruikt, ik zou graag willen weten welke van de volgende vragen van belang zijn voor de gemeenschap:

  • SDP-protocol voor de beschrijving van streaminggegevens
  • ICE-kandidaten en het tot stand brengen van een verbinding tussen twee punten, STUN- en TURN-servers
  • DTLS-verbinding en overdracht van sleutels naar RTP-sessie
  • RTP- en RTСP-protocollen met codering voor het verzenden van mediagegevens
  • Draag H264, VP8 en Opus over via RTP
  • SCTP-verbinding voor de overdracht van binaire gegevens

Bron: www.habr.com

Voeg een reactie