Files
rdplib/doc.go
T

37 lines
1.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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