基于WebRTC + Vue3 + Electron + Nodejs搭建的远程桌面
BilldDesk远程桌面控制,目前实现了类似ToDesk、向日葵等远程桌面的功能。
名称 | 仓库 | star & fork | 线上地址 |
---|---|---|---|
远程桌面网页端 | billd-desk | https://desk.hsslive.cn | |
远程桌面客户端 | billd-desk-electron | ||
远程桌面移动端 | billd-desk-flutter | ||
远程桌面服务端 | billd-desk-server |
- Web端控制桌面客户端
- Web端查看Web端
- 桌面客户端控制桌面客户端
- 桌面客户端查看Web端
- 连接鉴权
- 支持Macos系统
- 支持Windows系统
- 支持Linux系统
- 文件传输
- 移动客户端
- 后台管理
目前暂不实现以下功能:
- ❌ Web端控制Web端
- ❌ 桌面客户端控制Web端
- ❌ Docker部署
线上接口:https://desk-api.hsslive.cn
接口文档:todo
- 安装依赖(建议使用 node 版本:v18.19.0)
pnpm i
更新 billd 相关依赖:
pnpm i billd-deploy@latest billd-utils@latest billd-scss@latest billd-html-webpack-plugin@latest
- 运行
npm run dev
- 打包windows、macos、linux包
npm run build
- 打包windows包
npm run build:win
- 打包macos包
npm run build:mac
- 打包linux包
npm run build:linux
主要测试各个端之间远程时候的延迟。
TODO
b站合集:BilldDesk开源远程桌面控制
WebRTC课程:https://www.hsslive.cn/article/151
npm config set registry https://registry.npmmirror.com
./node_modules/.bin/electron-rebuild
直接删了node_modules的cpu-feature
- 直接ctrl+c退出npm安装
- 进入node_modules/electron/install.js,将
修改为:
downloadArtifact({ version, artifactName: 'electron', force: process.env.force_no_cache === 'true', cacheRoot: process.env.electron_config_cache, checksums: (process.env.electron_use_remote_checksums ?? process.env.npm_config_electron_use_remote_checksums) ? undefined : require('./checksums.json'), platform, arch, }) .then(extractFile) .catch((err) => { console.error(err.stack); process.exit(1); });
downloadArtifact({ version, artifactName: 'electron', force: process.env.force_no_cache === 'true', cacheRoot: process.env.electron_config_cache, checksums: (process.env.electron_use_remote_checksums ?? process.env.npm_config_electron_use_remote_checksums) ? undefined : require('./checksums.json'), platform, arch, mirrorOptions: { mirror: 'https://npmmirror.com/mirrors/electron/', platform, arch, }, }) .then(extractFile) .catch((err) => { console.error(err.stack); process.exit(1); });
- 在node_modules/electron目录下执行node install
- Windows
- Macos
- Linux