Skip to content

基于electron和golang模仿向日葵远控软件制作的远控软件,基于webrtc实现实时屏幕分享,基于golang实现键鼠控制

License

Notifications You must be signed in to change notification settings

cgb-tools/remote_electron

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

山与路远程控制

🎥项目演示地址

还在制作....

♻️项目基本介绍

山与路远程控制是基于electron(vue3)golang实现的远程控制软件(项目界面主要模仿向日葵远程软件,如有侵权请告知),代码可能有点臃肿毕竟只花了一周左右写的无聊项目,如果对其感兴趣的大佬可以fork自行修改(大佬勿喷)

技术栈

  1. vue3
  2. golang
  3. webrtc
  4. cgo
  5. turn

项目思路

  • 键鼠主要通过cgo调用windowapigoreboot来实现击键的监听和控制端模拟
  • 控制端和被控制根据服务器转发后在通过webrtc和golang的pion实现p2p通信
  • 服务端主要功能是为了转发数据和提供turn服务器
  • 视频流直接使用最简单的webrtc实现实时画面传输
  • 当新设备访问服务端则会自动分配识别码和验证码,通过识别码和验证码来建立连接

🧧 作者自己的配置环境

nodejs

16.20.1

npm

在这里插入图片描述

golang

在这里插入图片描述

📍 服务端相关配置config.yaml

serveraddr: ":9998"  #后端地址
turn:
  public_ip: "127.0.0.1" #公网地址
  port: 3478  # turn端口
  thread_num: 5  # 如果服务端是linux则填写   进程数
db_path: "./remote.db" # 数据库路径

🔖项目运行

后端运行

git clone https://github.com/OblivionTime/remote_electron.git
cd /remote_electron/server
go mod tidy
go run main.go

前端调试运行

git clone https://github.com/OblivionTime/remote_electron.git
#启动客户端
cd /remote_electron/client
go mod tidy
go run main.go

# 启动前端页面
cd /remote_electron/ui
yarn
#调试
yarn serve
#打包
yarn build

👻注意事项

  1. 打开软件第一时间修改服务器地址

在这里插入图片描述

技术人员根据自己的需求去修改

🎉已完成功能

  • 获取识别码和验证码
  • webrtc 建连
  • 连接后完全控制对方的键鼠
  • 断开连接
  • 悬浮球
  • 保存连接过的设备
  • 实现自己的turn服务器
  • 文件传输功能

🖼️ 项目截图

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

注意electron打包会出现的问题

打包前必须做的事

  • 进入到下面目录C:\Users\自己的用户名\AppData\Local\electron-builder\Cache 在这里插入图片描述

  • 创建目录winCodeSignnsis 在这里插入图片描述

  • electron必须安装包目录下的winCodeSign-2.6.0.7z解压到C:\Users\自己的用户名\AppData\Local\electron-builder\Cache\winCodeSign目录下

在这里插入图片描述

结语

在这里插入图片描述

About

基于electron和golang模仿向日葵远控软件制作的远控软件,基于webrtc实现实时屏幕分享,基于golang实现键鼠控制

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 46.8%
  • Vue 44.2%
  • JavaScript 8.4%
  • HTML 0.6%