Control remoto del ordenador 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 su control.

En cierto momento me di cuenta de que la tecnología WebRTC es muy adecuada para estos fines. El navegador Chrome tiene esta solución: se instala mediante una extensión. Pero quería crear un programa liviano que funcionara sin instalación.

Primero intenté utilizar la biblioteca proporcionada por Google, pero después de la compilación ocupa 500 MB. Tuve que implementar toda la pila WebRTC casi desde cero y logré colocar todo en un archivo exe de 2.5 MB. Un amigo me ayudó con la interfaz en JS y esto es con lo que terminamos.

Ejecutemos el programa:

Control remoto del ordenador a través del navegador
Abra el enlace en una pestaña del navegador y obtenga acceso completo al escritorio:

Control remoto del ordenador a través del navegador
Una breve animación del proceso de configuración de la conexión:

Control remoto del ordenador a través del navegador
Compatible con Chrome, Firefox, Safari, Opera.

Es posible transmitir sonido, llamadas de audio, administrar el portapapeles, transferir archivos y llamar a teclas de acceso rápido.

Mientras trabajaba en el programa, tuve que estudiar una docena de RFC y comprender que no hay suficiente información en Internet sobre el funcionamiento del protocolo WebRTC. Quiero escribir un artículo sobre las tecnologías que se utilizan en el mismo, me gustaría saber cuáles de las siguientes preguntas son de interés para la comunidad:

  • Protocolo de descripción de datos de transmisión SDP
  • Candidatos de ICE y establecimiento de una conexión entre dos puntos, servidores STUN y TURN
  • Conexión DTLS y transferencia de claves a sesión RTP
  • Protocolos RTP y RTСP con cifrado para transmitir datos multimedia
  • Transfiera H264, VP8 y Opus vía RTP
  • Conexión SCTP para transferir datos binarios

Fuente: habr.com

Añadir un comentario