基于WebRTC + Vue3 + Electron + Nodejs搭建的远程桌面
2025 年起,billd-desk 项目的所有仓库将进入 dev 状态,如果你需要获取线上生产环境的代码,有以下两种方式:
- 请花些时间查看之前提交的代码:https://github.com/galaxy-s10/billd-desk/commits/master/。
- 订阅 billd-project,价格:https://desk.hsslive.cn/#/price
历史原因:参考 billd-live 的历史原因
BilldDesk 远程桌面控制,目前实现了类似 ToDesk、向日葵等远程桌面的功能。
名称 | 仓库 | star & fork | 线上地址/下载地址 |
---|---|---|---|
远程桌面网页/客户端 | billd-desk | https://desk.hsslive.cn | |
远程桌面后台 | billd-desk-admin | https://desk-admin.hsslive.cn | |
远程桌面移动端 | billd-desk-flutter | TODO | |
远程桌面服务端 | billd-desk-server | https://desk-api.hsslive.cn |
- Web 端控制桌面客户端
- 桌面客户端控制桌面客户端
- Web 端控制 Web 端(仅观看)
- 桌面客户端控制 Web 端(仅观看)
- 多人同时远程同一设备
- 连接鉴权
- 支持 Macos 系统
- 支持 Windows 系统
- 支持 Linux 系统(未实际测试)
- 文件传输
- 开机自启
- 锁屏保活
- 移动客户端(Flutter)
- 后台管理
接口文档:https://apifox.com/apidoc/shared-a8ba9715-7730-432d-896c-97f983050795
- 安装依赖(建议使用 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
如果应用图标不更新,可以尝试替换一个图标图片再打包,或者你不希望换图标图片的话,可以将现在的图标图片拿去压缩一下,亲测也能解决问题。
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