BilldDesk
BilldDesk
简单体验
两端 都是浏览器,输入对方设备码(允许后),就能开启共享屏幕或者摄像头。
基于浏览器内置的功能,只能查看屏幕。 安装客户端能够远程控制。
使用直播技术,解决远程桌面问题,工具还不成熟,挺神奇的思路!
技术原理
WebRTC 的作用是什么?
WebRTC 专注于实时媒体传输。它可以:
- 获取媒体流:使用
navigator.mediaDevices
API 获取摄像头、麦克风和屏幕的音视频流。 - 建立点对点连接:通过 ICE、STUN 和 TURN 服务器,让两个浏览器或应用程序直接建立通信连接。
- 传输数据:除了音视频流,WebRTC 的 Data Channel(数据通道)功能可以用于传输任意数据,比如文本消息、文件,或者——在本例中——控制指令。
WebRTC 的设计理念是作为浏览器的安全沙盒中的一个工具,它不会被赋予直接与操作系统进行交互的权限,例如移动鼠标或模拟按键。这样做是为了保护用户的安全和隐私。
如何实现远程控制?
虽然 WebRTC 不能直接控制,但它可以作为实现远程控制的关键传输管道。要实现完整的远程控制功能,您需要将 WebRTC 与一个额外的、具有系统权限的应用程序结合使用。
这个过程可以分为以下几个步骤:
屏幕共享:在被控端,使用 WebRTC 的
getDisplayMedia()
方法获取屏幕的视频流,并将其发送给主控端。这让主控端能看到被控端的屏幕。事件监听:在主控端,您需要编写 JavaScript 代码来监听鼠标和键盘事件。当用户点击或按下某个键时,您会捕获这些事件的数据(例如,鼠标点击的坐标
x, y
,或按下的键码)。数据传输:通过 WebRTC 的 Data Channel,将这些事件数据作为控制指令发送给被控端。
指令执行:这是最关键的一步。在被控端,除了浏览器之外,您还需要一个独立运行的应用程序或服务。这个应用程序通过某种方式(例如,一个本地的 WebSocket 服务器或直接的 WebRTC Data Channel 接口)接收来自浏览器的数据通道指令。由于这个应用程序拥有操作系统的权限,它可以将收到的指令转换为实际的系统级操作,比如调用操作系统的 API 来移动鼠标指针或模拟按键事件。
可以将这个过程比作一个遥控机器人:
- WebRTC 的屏幕共享就像机器人身上的摄像头,将画面传回给您。
- WebRTC 的数据通道就像一个无线电信号,可以从您这里发送指令(“向前走”、“向右转”)给机器人。
- 那个独立的应用程序才是机器人本身,它接收到指令后,有能力驱动马达(操作系统 API)去执行相应的动作。
离开了这个拥有系统权限的独立应用程序,浏览器中的 WebRTC 就像一个只提供视频和聊天功能的监视器,无法对被控端进行任何操作。
Chrome有远程控制的插件
https://remotedesktop.google.com/
现代浏览器功能非常强大 几乎就是一个单独的OS