Contrôle à distance de l'ordinateur via un navigateur

Il y a environ six mois, j'ai décidé de créer un programme pour contrôler un ordinateur via un navigateur. J'ai commencé avec un simple serveur HTTP à socket unique, qui transférait les images au navigateur et recevait les coordonnées du curseur pour le contrôle.

À un certain stade, j'ai réalisé que la technologie WebRTC est bien adaptée à ces fins. Le navigateur Chrome a une telle solution, il est installé via l'extension. Mais je voulais créer un programme léger qui fonctionnerait sans installation.

Au début, j'ai essayé d'utiliser la bibliothèque fournie par Google, mais après la compilation, cela prend 500 Mo. J'ai dû implémenter la pile WebRTC entière presque à partir de zéro, j'ai réussi à tout ranger dans un fichier exe de 2,5 Mo. Un ami a aidé avec l'interface JS, c'est ce qui a fini.

Exécutez le programme:

image

Nous ouvrons le lien dans l'onglet du navigateur et obtenons un accès complet au bureau:


Une petite animation du processus de configuration de la connexion:


Pris en charge par Chrome, Firefox, Safari, Opera.

Il y a la possibilité de transmettre le son, les appels audio, la gestion du presse-papiers, le transfert de fichiers et les raccourcis clavier.

Au cours des travaux sur le programme, j'ai dû étudier une dizaine de RFC et comprendre qu'Internet ne dispose pas de suffisamment d'informations sur le fonctionnement du protocole WebRTC. Je veux écrire un article sur les technologies qui y sont utilisées, je veux savoir quels enjeux des suivants intéressent la communauté:

  • Protocole de description du streaming SDP
  • Candidats ICE et établissement d'une connexion entre deux points, serveur STUN et TURN
  • Connexion DTLS et transfert de clé à la session RTP
  • Protocoles RTP et RTCP avec cryptage pour la transmission multimédia
  • Transférez H264, VP8 et Opus sur RTP
  • Connexion de données binaires SCTP

Source: https://habr.com/ru/post/fr470005/


All Articles