名词解释
客户端
客户端是用户或业务应用使用的一端,用来连接目标设备、查看音视频、发起对讲、发送控制命令或承接业务交互。
在常见接入里,手机 App、桌面 App、Web 管理台或基于 Flutter / Android / iOS SDK 开发的应用都属于客户端。客户端通常会拿到 remote_id 和 token,再连接目标设备。
设备端
设备端是运行在嵌入式设备上的一端,用来让这台设备接入 TiRTC,并把设备上的音视频、对讲或控制能力开放给客户端。
例如摄像头、门铃、对讲设备、智能音箱、Linux 嵌入式设备或设备网关,都可以是设备端。设备端通常用 device_id 和 device_secret_key 启动 SDK;客户端连接它以后,可以查看音视频、进行对讲、收发命令或使用其他设备侧能力。
AppId
AppId 是客户端应用的唯一标识。
你可以把它理解成“哪个业务 App 在接入 TiRTC”。同一个业务 App 可以有 Android、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 当成普通配置随意传递,也不要打印到日志、聊天记录、截图或工单里。
license
license 是部分 API、CLI 或配置项里沿用的设备启动字段名。
在当前文档里,它不是一种独立凭证,通常指 device_id 和 device_secret_key 的组合。
如果你看到某个地方要求填写 license,优先按“设备标识 + 设备密钥”的组合来理解,不要把它当成可以随手分享的普通字符串。
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 专门承载消息;关键是两端按同一套约定解析。