
基于 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 2024-10-31 18:55:30 +08:00 牛逼,需要服务端中转吗? |
2 xdeng 2024-10-31 19:13:23 +08:00 在不理想的情况下 WebRTC 支持中转方式的。 |
3 Robertwhite 2024-10-31 20:08:30 +08:00 请问一下,一台电脑控制另一台电脑的原理是啥?是操作系统留有统一的 API 吗? |
4 itechify PRO 牛逼 |
7 billdlive OP @Robertwhite 看 readme |
11 billdlive OP @wsyss 完全自建,使用教程在 b 站,https://www.bilibili.com/video/BV1X61uYiEbP |
12 Robertwhite 2024-11-07 14:25:18 +08:00 @Robertwhite google 了下,原来只是把鼠标键盘操作实时同步到另一端就行了,之前还在想是怎么接管的,实时同步画面估计技术角度更难点 |