Hai uns seis meses decidín facer un programa para controlar un ordenador a través dun navegador. Comecei cun simple servidor HTTP dun só socket que transfería imaxes ao navegador e recibía as coordenadas do cursor para controlar.
Nun momento determinado, decateime de que a tecnoloxía WebRTC é moi adecuada para estes propósitos. O navegador Chrome ten tal solución; instálase mediante unha extensión. Pero quería facer un programa lixeiro que funcionase sen instalación.
Primeiro tentei usar a biblioteca proporcionada por Google, pero despois da compilación ocupa 500 MB. Tiven que implementar toda a pila WebRTC case desde cero e conseguín encaixar todo nun ficheiro exe de 2.5 MB. Un amigo axudou coa interface en JS, e isto é o que acabamos.
Imos executar o programa:
Abre a ligazón nunha pestana do navegador e obtén acceso total ao escritorio:
Unha pequena animación do proceso de configuración da conexión:
Compatible con Chrome, Firefox, Safari, Opera.
É posible transmitir son, chamadas de audio, xestionar o portapapeis, transferir ficheiros e chamar teclas rápidas.
Mentres traballaba no programa, tiven que estudar unha ducia de RFC e entender que non hai información suficiente en Internet sobre o funcionamento do protocolo WebRTC. Quero escribir un artigo sobre as tecnoloxías que se usan nel, gustaríame saber cales das seguintes preguntas son de interese para a comunidade:
- Protocolo de descrición de datos de transmisión SDP
- Candidatos ICE e establecendo unha conexión entre dous puntos, os servidores STUN e TURN
- Conexión DTLS e transferencia de claves á sesión RTP
- Protocolos RTP e RTСP con cifrado para transmitir datos multimedia
- Transfire H264, VP8 e Opus a través de RTP
- Conexión SCTP para transferir datos binarios
Fonte: www.habr.com