Skip to content

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.2

SDK 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 回调,见播放音视频。

TiRTC 开发文档