基于 WebRTC + Vue3 + Electron + Nodejs 搭建的远程桌面
BilldDesk 远程桌面控制,目前实现了类似 ToDesk 、向日葵等远程桌面的功能。
名称 | 仓库 | star & fork | 线上地址 |
---|---|---|---|
远程桌面网页端 | billd-desk | https://desk.hsslive.cn | |
远程桌面客户端 | billd-desk-electron | ||
远程桌面移动端 | billd-desk-flutter | ||
远程桌面服务端 | billd-desk-server |
目前暂不实现以下功能:
线上接口:https://desk-api.hsslive.cn
接口文档:todo
pnpm i
更新 billd 相关依赖:
pnpm i billd-deploy@latest billd-utils@latest billd-scss@latest billd-html-webpack-plugin@latest
npm run dev
npm run build
npm run build:win
npm run build:mac
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
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); });
1 ilylx2008 349 天前 牛逼,需要服务端中转吗? |
![]() | 2 xdeng 349 天前 在不理想的情况下 WebRTC 支持中转方式的。 |
3 Robertwhite 349 天前 请问一下,一台电脑控制另一台电脑的原理是啥?是操作系统留有统一的 API 吗? |
![]() | 4 itechify PRO 牛逼 |
7 billdlive OP @Robertwhite 看 readme |
8 wsyss 347 天前 能不能远程协助安卓手机?不用直接操作,可以涂鸦标记指引就 OK |
11 billdlive OP @wsyss 完全自建,使用教程在 b 站,https://www.bilibili.com/video/BV1X61uYiEbP |
12 Robertwhite 342 天前 @Robertwhite google 了下,原来只是把鼠标键盘操作实时同步到另一端就行了,之前还在想是怎么接管的,实时同步画面估计技术角度更难点 |