# RemoteControl **Repository Path**: wireboy/remote-control ## Basic Information - **Project Name**: RemoteControl - **Description**: 使用web进行远程桌面的项目,仅在被控端安装。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: dev-windows - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RemoteControl 设计文档 一个用 Rust 开发的远程桌面控制系统。用户通过浏览器访问,浏览器把鼠标、键盘操作发送给被控端电脑上运行的服务,服务在本机模拟鼠标键盘操作,同时把屏幕画面实时编码回传给浏览器显示。 ## 需求基线 | 维度 | 决策 | | --- | --- | | 被控端平台 | Linux(X11)、Windows 优先实现;Linux(Wayland) 预留接口,暂不实现 | | 画面回传 | 需要实时视频流 | | 网络拓扑 | 同一局域网 / 可直连,无需中转服务器(架构预留可扩展) | | 安全 | 简单密码认证 + 传输加密(TLS/wss) | | 开发语言 | Rust(被控端服务)+ 浏览器原生 Web(前端) | ## 文档导航 | 文档 | 内容 | | --- | --- | | [01-架构设计.md](01-架构设计.md) | 总体架构、模块划分、数据流、线程模型、跨平台抽象 | | [02-技术选型.md](02-技术选型.md) | Rust crate 选型、视频编码方案、浏览器解码方案及取舍 | | [03-通信协议.md](03-通信协议.md) | WebSocket 消息格式、握手认证、输入事件、视频流协议 | | [04-安全设计.md](04-安全设计.md) | 密码认证流程、TLS、会话管理、风险点 | | [05-实施计划.md](05-实施计划.md) | 里程碑划分、目录结构、配置文件、验证方式 | ### Windows 平台 | 文档 | 内容 | | --- | --- | | [windows/01-兼容性分析.md](windows/01-兼容性分析.md) | Windows 平台移植需求分析、实现方案、优先级建议 | | [windows/02-屏幕捕获实现方案.md](windows/02-屏幕捕获实现方案.md) | Desktop Duplication API 详细实现方案、流程、光标捕获、多显示器 | | [windows/03-输入注入实现方案.md](windows/03-输入注入实现方案.md) | SendInput API 输入注入方案、滚轮精确控制、DPI 感知、键盘映射 | ## 一句话架构 ``` ┌─────────────┐ wss (WebSocket over TLS) ┌──────────────────────────┐ │ 浏览器 │ ───── 输入事件(鼠标/键盘) ──> │ Rust 被控端服务 │ │ (Web 前端) │ │ │ │ │ <──── 视频流(H.264 分片) ───── │ 捕获 → 编码 → 输入注入 │ └─────────────┘ └──────────────────────────┘ ``` 被控端是单个 Rust 二进制,内置 HTTP/WebSocket 服务器,既托管前端静态资源,又处理实时双向通信。