Go 客户端 SDK 接入
在可信的 Go 进程中连接设备,接收音视频帧、保存 MP4 / JPEG,并收发消息。该 SDK 使用 tirtc-client-go/v2;自行部署 RTC 节点使用的是另一个服务端 Go SDK。
Go 客户端 SDK 不采集或发布音视频,也不自动播放或渲染接收到的帧。
接入要求
- Go
1.25,CGO_ENABLED=1,本机 C 工具链。 - macOS
11.5及以上 Apple Silicon,或 Linux glibc x86_64。Linux 需提供GLIBC_2.35、GLIBCXX_3.4.30和CXXABI_1.3.9;不支持 Alpine / musl。 - macOS 构建需要 Xcode Command Line Tools;Linux 构建需要
patchelf。 - 应用可安全保存 Access Key ID / Secret Key ID,cache 使用可写的绝对路径。不要将长期密钥打包进分发给终端使用的应用。
添加依赖
在已有 Go module 中执行:
bash
go get github.com/tangeai/tirtc-client-go/v2@v2.6.2
go get -tool github.com/tangeai/tirtc-client-go/v2/cmd/tirtc-build@v2.6.2SDK module 和构建工具固定为相同版本,并提交更新后的 go.mod 和 go.sum。
初始化与连接
导入根 package tirtc,使用应用身份、一对 Access Key 和绝对 cache 路径创建 Client:
go
import tirtc "github.com/tangeai/tirtc-client-go/v2"同一进程只能有一个 RTC Client;一个 Client 可以创建多条连接。Go SDK 使用 Access Key 托管鉴权,Connect(ctx, deviceID) 不接收 Token。完整的连接、接收首帧和清理示例见 Go 客户端 API 说明。
构建与分发
假设应用入口为 ./cmd/app:
bash
CGO_ENABLED=1 go tool tirtc-build build --output dist/bin/app ./cmd/app分发时保留整个 dist,包括相邻动态库和许可证目录;仅复制可执行文件可能导致加载失败。构建工具负责整理所需原生库,不需要单独接入 C SDK。
常见问题
- 找不到 C 编译器或
patchelf:先满足上述本机构建条件。 - 动态库加载失败:确认系统架构、glibc / C++ 运行库版本及完整分发目录。
- 连接成功但没有帧:检查设备送流、Stream ID、订阅及 Output 回调,见播放音视频。