Controle remoto do computador via navegador

Há cerca de seis meses decidi fazer um programa para controlar um computador através de um navegador. Comecei com um servidor HTTP simples de soquete único que transferia imagens para o navegador e recebia coordenadas do cursor para controle.

A certa altura percebi que a tecnologia WebRTC é adequada para estes fins. O navegador Chrome tem essa solução: ela é instalada por meio de uma extensão. Mas eu queria fazer um programa leve que funcionasse sem instalação.

Primeiro tentei usar a biblioteca fornecida pelo Google, mas após a compilação ela ocupa 500 MB. Tive que implementar toda a pilha WebRTC quase do zero e consegui encaixar tudo em um arquivo exe de 2.5 MB. Um amigo ajudou com a interface em JS, e foi isso que conseguimos.

Vamos executar o programa:

Controle remoto do computador via navegador
Abra o link em uma aba do navegador e tenha acesso total ao desktop:

Controle remoto do computador via navegador
Uma breve animação do processo de configuração da conexão:

Controle remoto do computador via navegador
Compatível com Chrome, Firefox, Safari, Opera.

É possível transmitir som, fazer chamadas de áudio, gerenciar a área de transferência, transferir arquivos e chamar teclas de atalho.

Enquanto trabalhava no programa, tive que estudar uma dezena de RFCs e entender que não há informações suficientes na Internet sobre o funcionamento do protocolo WebRTC. Quero escrever um artigo sobre as tecnologias que nele são utilizadas, gostaria de saber quais das seguintes questões interessam à comunidade:

  • Protocolo de descrição de dados de streaming SDP
  • Candidatos ICE e estabelecimento de conexão entre dois pontos, servidores STUN e TURN
  • Conexão DTLS e transferência de chaves para sessão RTP
  • Protocolos RTP e RTСP com criptografia para transmissão de dados de mídia
  • Transferir H264, VP8 e Opus via RTP
  • Conexão SCTP para transferência de dados binários

Fonte: habr.com

Adicionar um comentário