Control remoto di un computer attraversu un navigatore

Circa sei mesi fa decisu di fà un prugramma per cuntrullà un urdinatore attraversu un navigatore. Aghju cuminciatu cù un servitore HTTP simplice di un socket chì hà trasferitu l'imaghjini à u navigatore è hà ricevutu coordenate di cursore per u cuntrollu.

In un certu stadiu, aghju realizatu chì a tecnulugia WebRTC hè bè adattatu per questi scopi. U navigatore Chrome hà una tale suluzione; hè stallatu via una estensione. Ma vulia fà un prugramma ligeru chì travaglià senza installazione.

Prima aghju pruvatu à utilizà a biblioteca furnita da Google, ma dopu a compilazione piglia 500MB. Aviu avutu à implementà tuttu u stack WebRTC quasi da zero, è hà sappiutu mette tuttu in un schedariu exe 2.5MB. Un amicu hà aiutatu cù l'interfaccia in JS, è questu hè ciò chì avemu finitu.

Eseguimu u prugramma:

Control remoto di un computer attraversu un navigatore
Aprite u ligame in una tabulazione di u navigatore è uttene un accessu cumpletu à u desktop:

Control remoto di un computer attraversu un navigatore
Una breve animazione di u prucessu di stallazione di cunnessione:

Control remoto di un computer attraversu un navigatore
Supportatu da Chrome, Firefox, Safari, Opera.

Hè pussibule di trasmette sonu, chjama audio, gestione di u clipboard, trasferimentu di fugliali è chjamate hot keys.

Mentre travagliava nantu à u prugramma, aghju avutu à studià una decina di RFC è capisce chì ùn ci hè micca abbastanza infurmazione in Internet nantu à u funziunamentu di u protocolu WebRTC. Vogliu scrive un articulu nantu à e tecnulugia chì sò aduprate in questu, vogliu sapè quale di e seguenti dumande sò d'interessu per a cumunità:

  • Protokollu di descrizzione di dati in streaming SDP
  • I candidati ICE è stabiliscenu una cunnessione trà dui punti, i servitori STUN è TURN
  • Cunnessione DTLS è trasferimentu di chjave à a sessione RTP
  • Protokolli RTP è RTСP cù criptografia per a trasmissione di dati media
  • Trasferisce H264, VP8 è Opus via RTP
  • Cunnessione SCTP per u trasferimentu di dati binari

Source: www.habr.com

Add a comment