Remote control ng computer sa pamamagitan ng browser

Mga anim na buwan na ang nakalipas nagpasya akong gumawa ng program para makontrol ang isang computer sa pamamagitan ng browser. Nagsimula ako sa isang simpleng single-socket HTTP server na naglipat ng mga larawan sa browser at nakatanggap ng mga cursor coordinates para sa kontrol.

Sa isang tiyak na yugto napagtanto ko na ang teknolohiya ng WebRTC ay angkop na angkop para sa mga layuning ito. Ang Chrome browser ay may ganoong solusyon; ito ay naka-install sa pamamagitan ng isang extension. Ngunit nais kong gumawa ng isang magaan na programa na gagana nang walang pag-install.

Una kong sinubukang gamitin ang library na ibinigay ng Google, ngunit pagkatapos ng compilation ay umaabot ito ng 500MB. Kinailangan kong ipatupad ang buong WebRTC stack halos mula sa simula, at pinamamahalaang upang magkasya ang lahat sa isang 2.5MB exe file. Tumulong ang isang kaibigan sa interface sa JS, at ito ang natapos namin.

Patakbuhin natin ang programa:

Remote control ng computer sa pamamagitan ng browser
Buksan ang link sa isang tab ng browser at makakuha ng ganap na access sa desktop:

Remote control ng computer sa pamamagitan ng browser
Isang maikling animation ng proseso ng pag-setup ng koneksyon:

Remote control ng computer sa pamamagitan ng browser
Sinusuportahan ng Chrome, Firefox, Safari, Opera.

Posibleng magpadala ng tunog, audio call, pamahalaan ang clipboard, maglipat ng mga file at tumawag ng mga hot key.

Habang nagtatrabaho sa programa, kinailangan kong pag-aralan ang isang dosenang RFC at maunawaan na walang sapat na impormasyon sa Internet tungkol sa pagpapatakbo ng protocol ng WebRTC. Nais kong magsulat ng isang artikulo sa mga teknolohiyang ginagamit dito, nais kong malaman kung alin sa mga sumusunod na katanungan ang interesado sa komunidad:

  • Protocol ng paglalarawan ng data ng streaming ng SDP
  • Mga kandidato sa ICE at nagtatag ng koneksyon sa pagitan ng dalawang punto, STUN at TURN server
  • Koneksyon ng DTLS at paglilipat ng mga susi sa session ng RTP
  • Mga protocol ng RTP at RTΠ‘P na may encryption para sa pagpapadala ng data ng media
  • Ilipat ang H264, VP8 at Opus sa pamamagitan ng RTP
  • Koneksyon ng SCTP para sa paglilipat ng binary data

Pinagmulan: www.habr.com

Magdagdag ng komento