37 lines
1.7 KiB
Go
37 lines
1.7 KiB
Go
// Package grdp 实现微软 RDP(远程桌面协议)的纯 Go 客户端协议栈。
|
||
//
|
||
// 本包是 nakagami/grdp 的深度 fork(MIT,保留上游版权),由 webrdp
|
||
// 项目扩展维护:NLA/CredSSP 认证、RDPGFX/H.264 多形态回调、动态分辨率、
|
||
// Unicode 输入、多形态剪贴板、音频、驱动器重定向(rdpdr)等能力
|
||
// 均在原生 Go API 之下,同一套协议栈可同时编译为原生程序与
|
||
// GOOS=js GOARCH=wasm 的浏览器模块。
|
||
//
|
||
// # 基本用法
|
||
//
|
||
// client := grdp.NewRdpClient("host:3389", 1280, 800,
|
||
// func(addr string) (net.Conn, error) { return net.Dial("tcp", addr) })
|
||
// client.OnError(func(e error) { ... }).
|
||
// OnReady(func() { ... }).
|
||
// OnBitmap(func(bits []grdp.Bitmap) { ... })
|
||
// err := client.Login(domain, user, password)
|
||
//
|
||
// 所有 On* 回调在协议栈读循环 goroutine 内同步触发,回调不得长时间
|
||
// 阻塞;Login 阻塞直到能力协商完成(会话就绪以 OnReady 为准)。
|
||
//
|
||
// # 渲染模型
|
||
//
|
||
// 传统管线经 OnBitmap 交付 Bitmap(RGBA()/FillRGBA 解码);GFX 管线经
|
||
// OnH264Raw/OnH264I420/OnH264NV12 交付 H.264 NAL 或原始平面——解码
|
||
// 由宿主负责(浏览器 WebCodecs、FFmpeg 均可),纯 Go 构建即可使用。
|
||
//
|
||
// # 虚拟通道
|
||
//
|
||
// 内置 rdpsnd/cliprdr/rdpdr/rdpgfx/rdpedisp/drdynvc(plugin 子包),
|
||
// 自定义通道实现 plugin.ChannelTransport 三方法后经 Channels.Register
|
||
// 注册,见 plugin/channel.go。
|
||
//
|
||
// 目录导览:core/(传输抽象与工具)、emission/(事件发射器)、
|
||
// protocol/(x224/tpkt/t125/sec/nla/pdu/lic/gcc 协议层)、
|
||
// plugin/(虚拟通道框架与内置通道)。
|
||
package grdp
|