Fernsteuerung des Computers über einen Browser

Vor ungefähr sechs Monaten habe ich beschlossen, ein Programm zur Steuerung eines Computers über einen Browser zu erstellen. Ich begann mit einem einfachen Single-Socket-HTTP-Server, der Bilder an den Browser übertrug und die Koordinaten des Cursors zur Steuerung erhielt.

Zu einem bestimmten Zeitpunkt wurde mir klar, dass die WebRTC-Technologie für diese Zwecke gut geeignet ist. Chrome Browser hat eine solche Lösung, es wird über die Erweiterung installiert. Aber ich wollte ein leichtes Programm erstellen, das ohne Installation funktioniert.

Zuerst habe ich versucht, die von Google bereitgestellte Bibliothek zu verwenden, aber nach dem Kompilieren dauert es 500 MB. Ich musste den gesamten WebRTC-Stack fast von Grund auf neu implementieren. Es gelang mir, alles in eine Exe-Datei mit einer Größe von 2,5 MB zu integrieren. Ein Freund half bei der JS-Oberfläche, das war es, was endete.

Führen Sie das Programm aus:

Bild

Wir öffnen den Link in der Registerkarte Browser und erhalten vollen Zugriff auf den Desktop:


Eine kleine Animation des Verbindungsaufbaus:


Unterstützt von Chrome, Firefox, Safari, Opera.

Es besteht die Möglichkeit, Ton, Audioanrufe, Zwischenablageverwaltung, Dateiübertragung und Hotkeys zu übertragen.

Während der Arbeit an dem Programm musste ich ungefähr ein Dutzend RFCs studieren und verstehen, dass das Internet nicht genügend Informationen über das WebRTC-Protokoll enthält. Ich möchte einen Artikel über die darin verwendeten Technologien schreiben und möchte wissen, welche Themen von folgendem Interesse für die Community sind:

  • SDP Streaming Description Protocol
  • ICE-Kandidaten und Herstellen einer Verbindung zwischen zwei Punkten, STUN und TURN-Server
  • DTLS-Verbindung und Schlüsselübertragung zur RTP-Sitzung
  • RTP- und RTCP-Protokolle mit Verschlüsselung für die Medienübertragung
  • Übertragen Sie H264, VP8 und Opus über RTP
  • SCTP-Binärdatenverbindung

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


All Articles