通过浏览器进行远程计算机控制

大约六个月前,我决定创建一个用于通过浏览器控制计算机的程序。 我从一个简单的单路HTTP服务器开始,该服务器将图片传输到浏览器并接收光标的坐标以进行控制。

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

最初,我尝试使用Google提供的库,但编译后需要500MB。 我几乎必须从头开始实现整个WebRTC堆栈,我设法将所有内容装入2.5MB大小的exe文件中。 一个朋友帮忙了JS界面,结果就是这样。

运行程序:

图片

我们在浏览器选项卡中打开链接,并获得对桌面的完全访问权限:


连接建立过程的小动画:


受Chrome,Firefox,Safari,Opera支持。

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

在该程序的工作过程中,我不得不研究约十二个RFC,并了解Internet上没有有关WebRTC协议的足够信息。 我想写一篇关于其中使用的技术的文章,我想知道社区关注以下哪些问题:

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

Source: https://habr.com/ru/post/zh-CN470005/


All Articles