通过浏览器远程控制电脑

大约六个月前,我决定制作一个程序来通过浏览器控制计算机。 我从一个简单的单套接字 HTTP 服务器开始,它将图像传输到浏览器并接收光标坐标以进行控制。

在某个阶段,我意识到 WebRTC 技术非常适合这些目的。 Chrome浏览器有这样的解决方案;它是通过扩展安装的。 但我想制作一个无需安装即可运行的轻量级程序。

首先我尝试使用Google提供的库,但编译后占用了500MB。 我必须几乎从头开始实现整个 WebRTC 堆栈,并设法将所有内容放入 2.5MB 的 exe 文件中。 一位朋友帮忙用 JS 设计了界面,这就是我们最终的结果。

让我们运行一下程序:

通过浏览器远程控制电脑
在浏览器选项卡中打开链接并获得对桌面的完全访问权限:

通过浏览器远程控制电脑
连接设置过程的简短动画:

通过浏览器远程控制电脑
Chrome、Firefox、Safari、Opera 支持。

可以传输声音、音频呼叫、管理剪贴板、传输文件和呼叫热键。

在编写该程序时,我必须研究十几个 RFC,并了解到互联网上没有足够的有关 WebRTC 协议操作的信息。 我想写一篇关于其中使用的技术的文章,我想了解社区对以下哪些问题感兴趣:

  • SDP流数据描述协议
  • ICE 候选者并在 STUN 和 TURN 服务器两点之间建立连接
  • DTLS 连接和密钥传输到 RTP 会话
  • 用于传输媒体数据的加密 RTP 和 RTСP 协议
  • 通过 RTP 传输 H264、VP8 和 Opus
  • 用于传输二进制数据的 SCTP 连接

来源: habr.com

添加评论