Skip to content

名词解释 ​

客户端 ​

客户端是用户或业务应用使用的一端,用来连接目标设备、查看音视频、发起对讲、发送控制命令或承接业务交互。

在常见接入里,手机 App、桌面 App、Web 管理台或基于 Flutter / Android / HarmonyOS / iOS SDK 开发的应用都属于客户端。客户端通常会拿到 remote_id 和 token,再连接目标设备。

设备端 ​

设备端是运行在嵌入式设备上的一端,用来让这台设备接入 TiRTC,并把设备上的音视频、对讲或控制能力开放给客户端。

例如摄像头、门铃、对讲设备、智能音箱、Linux 嵌入式设备或设备网关,都可以是设备端。设备端通常用 device_id 和 device_secret_key 启动 SDK;客户端连接它以后,可以查看音视频、进行对讲、收发命令或使用其他设备侧能力。

AppId ​

AppId 是客户端应用的唯一标识。

你可以把它理解成“哪个业务 App 在接入 TiRTC”。同一个业务 App 可以有 Android、HarmonyOS、iOS、Flutter 等多个客户端技术栈,它们可以使用同一个 AppId。

AppId 不表示某个用户、某台设备或某一次连接。

AccessKeyId ​

AccessKeyId 是应用级凭证标识。

它用来标识这次签发或接入属于哪个 TiRTC 应用。服务端签发连接 token 时会用到它,TiRTC 也会用它识别对应的应用级凭证。

AccessKeyId 本身不是密钥,通常和 SecretKeyId 成对使用。

SecretKeyId ​

SecretKeyId 是应用级密钥。

它用于服务端签名和鉴权,属于敏感信息。你的业务服务端可以使用它签发连接 token,但不要把它下发到客户端,也不要写进客户端代码、日志、截图或工单。

device_id ​

device_id 是设备的稳定标识。

你可以把它理解成“是哪一台设备”。它常用于设备管理、授权判断、远端目标识别和排查定位。

常见设备连接场景里,客户端要连接某台设备时,remote_id 通常就是这台设备的 device_id。

device_secret_key ​

device_secret_key 是设备级密钥。

它和 device_id 一起用于证明设备身份,也可能参与服务端签名或校验。它属于敏感信息,应只保存在设备端和服务端的受控位置。

不要把 device_secret_key 当成普通配置随意传递,也不要打印到日志、聊天记录、截图或工单里。

remote_id ​

remote_id 是客户端发起连接时填写的目标标识。

你可以把它理解成“这次要连谁”。客户端拿到 token 后,会配合 remote_id 发起连接。

常见设备连接场景里,remote_id 就是目标设备的 device_id。服务端签发 token 时绑定的目标,也应当和客户端传入的 remote_id 保持一致。

token ​

token 是客户端发起一次连接时使用的短时凭证。

它通常由你的业务服务端签发。服务端在签发前应先完成自己的业务授权判断,例如当前用户是否有权限访问目标设备。

客户端只需要把 token 当成一段不透明字符串使用,不应在客户端拼装、解析或改写它。

stream ​

stream 可以理解成同一条连接里“一路一路”的数据,例如主视频一路、子视频一路、主音频一路、对讲音频一路。

TiRTC 用 stream_id 标识同一条连接里的每一路数据,并用媒体类型区分这一路数据里的帧是音频、视频还是流消息。

stream 有下面几种类型:

类型说明示例
音频流持续传输音频帧的 stream主音频、对讲音频
视频流持续传输视频帧的 stream主视频、子视频
流消息带 stream_id 的业务自定义消息帧字幕片段、叠字文本、和某路音视频同步的状态提示

流消息 ​

流消息是在一条已建立的 TiRTC 连接上,沿指定 stream_id 传输的业务自定义字节数据。

它适合表达“这段轻量数据属于某一路流”,例如字幕片段、叠字文本、主视频探针或和某路音视频同步的状态提示。流消息不是命令通道;如果你要表达请求、控制指令或处理结果,优先使用命令消息。

stream_id ​

stream_id 是同一条连接里某一条 stream 的编号。

客户端用它声明要播放、订阅、退订或请求关键帧的是哪一路远端音频或视频;设备端也用它标识正在发送、请求或停止的是哪一路流。

stream_id 的取值范围是 0 到 15。在同一条连接里,音频和视频不能共用同一个 stream_id。

流消息也带 stream_id,但它不要求独占一个新的 stream_id。你可以把消息放到某一路已有音视频 stream_id 上,也可以单独约定一个 stream_id 专门承载消息;关键是两端按同一套约定解析。

TiRTC 开发文档