Contrôle de l'ordinateur à distance 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 vers le navigateur et recevait les coordonnées du curseur pour le contrôle.

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

J'ai d'abord essayé d'utiliser la bibliothèque fournie par Google, mais après compilation, elle prend 500 Mo. J'ai dû implémenter l'intégralité de la pile WebRTC presque à partir de zéro et j'ai réussi à tout intégrer dans un fichier exe de 2.5 Mo. Un ami a aidé avec l'interface dans JS, et c'est ce que nous avons obtenu.

Exécutons le programme :

Contrôle de l'ordinateur à distance via un navigateur
Ouvrez le lien dans un onglet du navigateur et obtenez un accès complet au bureau :

Contrôle de l'ordinateur à distance via un navigateur
Une courte animation du processus de configuration de la connexion :

Contrôle de l'ordinateur à distance via un navigateur
Pris en charge par Chrome, Firefox, Safari, Opera.

Il est possible de transmettre du son, des appels audio, de gérer le presse-papiers, de transférer des fichiers et d'appeler des touches de raccourci.

En travaillant sur le programme, j'ai dû étudier une douzaine de RFC et comprendre qu'il n'y a pas suffisamment d'informations sur Internet sur le fonctionnement du protocole WebRTC. Je souhaite écrire un article sur les technologies qui y sont utilisées, j'aimerais savoir lesquelles des questions suivantes intéressent la communauté :

  • Protocole de description des données de streaming SDP
  • Candidats ICE et établissement d'une connexion entre deux points, serveurs STUN et TURN
  • Connexion DTLS et transfert des clés vers la session RTP
  • Protocoles RTP et RTСP avec cryptage pour la transmission des données multimédias
  • Transférer H264, VP8 et Opus via RTP
  • Connexion SCTP pour le transfert de données binaires

Source: habr.com

Ajouter un commentaire