Control remoto de la computadora a través del navegador

Hace unos seis meses, decidí crear un programa para controlar una computadora a través de un navegador. Comencé con un servidor HTTP simple de un solo socket, que transfirió imágenes al navegador y recibió las coordenadas del cursor para control.

En cierta etapa, me di cuenta de que la tecnología WebRTC es muy adecuada para estos fines. El navegador Chrome tiene esa solución, se instala a través de la extensión. Pero quería hacer un programa liviano que funcionara sin instalación.

Al principio traté de usar la biblioteca proporcionada por Google, pero después de la compilación se necesitan 500 MB. Tuve que implementar toda la pila de WebRTC casi desde cero, logré encajar todo en un archivo exe de 2.5 MB de tamaño. Un amigo ayudó con la interfaz JS, eso fue lo que terminó.

Ejecute el programa:

imagen

Abrimos el enlace en la pestaña del navegador y tenemos acceso completo al escritorio:


Una pequeña animación del proceso de configuración de la conexión:


Compatible con Chrome, Firefox, Safari, Opera.

Existe la posibilidad de transmitir sonido, llamadas de audio, gestión de portapapeles, transferencia de archivos y teclas de acceso rápido.

En el curso del trabajo en el programa, tuve que estudiar una docena de RFC y entender que Internet no tiene suficiente información sobre el funcionamiento del protocolo WebRTC. Quiero escribir un artículo sobre las tecnologías que se utilizan en él, quiero saber qué temas de los siguientes intereses interesan a la comunidad:

  • Protocolo de descripción de transmisión SDP
  • ICE candidatos y establecer una conexión entre dos puntos, servidor STUN y TURN
  • Conexión DTLS y transferencia de clave a sesión RTP
  • Protocolos RTP y RTCP con encriptación para transmisión de medios
  • Transfiera H264, VP8 y Opus sobre RTP
  • Conexión de datos binarios SCTP

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


All Articles