Control de la distanță al unui computer printr-un browser

Acum aproximativ șase luni am decis să fac un program pentru a controla un computer printr-un browser. Am început cu un server HTTP simplu cu un singur socket care a transferat imagini în browser și a primit coordonatele cursorului pentru control.

La un anumit stadiu mi-am dat seama că tehnologia WebRTC este potrivită pentru aceste scopuri. Browserul Chrome are o astfel de soluție; este instalat printr-o extensie. Dar am vrut să fac un program ușor care să funcționeze fără instalare.

Mai întâi am încercat să folosesc biblioteca oferită de Google, dar după compilare este nevoie de 500 MB. A trebuit să implementez întreaga stivă WebRTC aproape de la zero și am reușit să încadrez totul într-un fișier exe de 2.5 MB. Un prieten ne-a ajutat cu interfața în JS și asta am ajuns.

Hai să rulăm programul:

Control de la distanță al unui computer printr-un browser
Deschideți linkul într-o filă de browser și obțineți acces complet la desktop:

Control de la distanță al unui computer printr-un browser
O scurtă animație a procesului de configurare a conexiunii:

Control de la distanță al unui computer printr-un browser
Sprijinit de Chrome, Firefox, Safari, Opera.

Este posibil să transmiteți sunet, apel audio, să gestionați clipboard-ul, să transferați fișiere și să apelați taste rapide.

În timp ce lucram la program, a trebuit să studiez o duzină de RFC-uri și să înțeleg că nu există suficiente informații pe Internet despre funcționarea protocolului WebRTC. Vreau să scriu un articol despre tehnologiile care sunt utilizate în el, aș dori să aflu care dintre următoarele întrebări sunt de interes pentru comunitate:

  • Protocolul de descriere a datelor de streaming SDP
  • Candidații ICE și stabilirea unei conexiuni între două puncte, serverele STUN și TURN
  • Conexiune DTLS și transfer de chei la sesiunea RTP
  • Protocoale RTP și RTСP cu criptare pentru transmiterea datelor media
  • Transferați H264, VP8 și Opus prin RTP
  • Conexiune SCTP pentru transferul de date binare

Sursa: www.habr.com

Adauga un comentariu