开源库:jsmpeg-vnc 小巧高效的H5版vnc利器
VNC是远程连接的常用方式,方便我们进行远程系统维护,远程协助。通常需要安装客户端或专门的APP使用,有没有一种方法能把VNC集成到H5页面中让用户可以打开浏览器就能使用呢,jsmpeg-vnc为我们提供了一种简洁的方式和思路。
jsmpeg-vnc分为两部分,服务端和H5客户端
服务端
C++实现,服务端编译后仅50K,是一个简单的WEB服务器,负责响应HTTP请求,建立websocket连接,截取当前屏幕并编码后广播给客户端,并响应用户的鼠标键盘操作。
客户端
H5网页,客户在浏览器中输入服务器地址收到H5网页,网页中的javascript建立与服务器的websocket连接,转发用户的鼠标键盘操作,播放远程桌面画面。
如何使用
通用命令行启动服务端,可控制码率,输出桌面大小,使用端口等。
jsmpeg-vnc.exe [options] <window name>
Options:
-b bitrate in kilobit/s (default: estimated by output size)
-s output size as WxH. E.g: -s 640x480 (default: same as window size)
-f target framerate (default: 60)
-p port (default: 8080)
-c crop area in the captured window as X,Y,W,H. E.g.: -c 200,300,640,480
-i enable/disable remote input. E.g. -i 0 (default: 1)
客户端直接访问 http://ip:port 即可
扩展使用
1 大量PC维护项目:不可能让用户记住每个PC的ip地址,或让jsmpeg-vnc每时刻都在运行,浪费系统资源,并且不安全,这样的项目,一般会有一台服务器,可通过服务器获取PC列表,当用户点击连接某台PC时,服务器通过程序启动那台PC的jsmpeg-vnc服务,并重定向到指定PC的jsmpeg-vnc地址。
2 内网穿透:一台内网服务器对外网提供代理服务,转发客户端和jsmpeg-vnc的通信。
项目不同,使用方式也会不同,如用户身份验证等等,工具和思路在手,可以自由发挥。
源码地址
https://github.com/phoboslab/jsmpeg-vnc
相关文章
- MyBatis如何实现分页查询?_mybatis collection分页查询
- 通过Mybatis Plus实现代码生成器,常见接口实现讲解
- MyBatis-Plus 日常使用指南_mybatis-plus用法
- 聊聊:Mybatis-Plus 新增获取自增列id,这一次帮你总结好
- MyBatis-Plus码之重器 lambda 表达式使用指南,开发效率瞬间提升80%
- Spring Boot整合MybatisPlus和Druid
- mybatis 代码生成插件free-idea-mybatis、mybatisX
- mybatis-plus 团队新作 mybatis-mate 轻松搞定企业级数据处理
- Maven 依赖范围(scope) 和 可选依赖(optional)
- Trace Sql:打通全链路日志最后一里路