Vprix-VncProxy远程桌面代理组件

联合创作 · 2023-10-01 09:01

VprixVncProxy 是 Golang 实现的 Vnc 远程桌面代理组件,完全解析rfb协议,支持远程桌面代理,rbs文件录屏,rbs文件回放,截图,录制视频。



  • 全协议支持的VncProxy。

    • 支持Tcp代理

    • 支持WebSocket代理


  • 支持远程桌面操作保存为rbs文件。

  • 支持使用rbs文件作为重播服务,通过vnc客户端连接player服务,回放远程桌面的操作。

  • 支持实时录制视频。


  • 支持通过rbs文件录制视频


  • 支持屏幕截图



组件说明


Proxy



  1. 启动`server`接受`vnc viewer`的链接.

  2.  启动`client`连接到指定的`vnc server`.

  3.  为`vnc viewer`和`vnc server`之间建立起消息转发通道。

  4.  因为`rfb`协议被完全解析,可以针对通信的消息进行转发处理,产生了后续的功能。


Recorder


1. 启动`client`连接到指定的`vnc server`.
2. 发送帧缓冲区更新消息`FramebufferUpdateRequest`到`vnc server`。
3. 处理`vnc server`回复的界面更新消息`FramebufferUpdate`。
4. 把这一过程以`rbs`文件格式记录下来。


Player


1. 启动`server`接受`vnc viewer`的链接.
2. 读取`rbs`文件,并按格式生成`FramebufferUpdate`消息发送给`vnc viewer`。
3. `vnc viewer`的界面就会回放动作。


Screenshot


1. 支持`Proxy`,`Recorder`和`rbs`文件作为输入源。
2. 把当前的界面视图转换为图片文件。


Video


1. 支持`Proxy`,`Recorder`和`rbs`文件作为输入源。
2. 把`FramebufferUpdate`消息转换为视频文件。


已支持的编码格式



  • Raw

  • CopyRect

  • CoRRE

  • rre

  • Hextile

  • Tight

  • TightPng

  • ZLib

  • Zrle

  • CursorPseudo

  • CursorWithAlphaPseudo

  • DesktopNamePseudo

  • DesktopSizePseudo

  • ExtendedDesktopSizePseudo

  • LedStatePseudo

  • CursorPosPseudo

  • XCursorPseudo


未支持的编码格式



  • -jpeg

  •  jrle

  •  trle

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报