Skip to main content
C 接口用返回值表达结果。返回 int 的接口统一使用下面 5 个取值,RTC_OK0,失败一律为负数。

取值说明

RTC_ERROR 是一个笼统的失败码,本身不携带具体原因。定位问题时请先调高日志级别:
日志里会打出更具体的错误,形如 180001: 您不在频道内1021: ...。这两类码的区别见下面两节。

日志里的 180xxx:SDK 层错误

C 接口的这 5 个返回值只描述”调用层面”的结果,不携带原因。原因打在日志里,其中180 开头的 6 位码是 SDK 自身产生的错误180 是服务端 / 嵌入式这种接入方式的前缀,后三位是具体错误):
看到 180002(Token 已过期)时先确认不是 Token 复用:每个进程都要单独签发。这一条和下面的服务端 1032 是同一类问题的两种表现。

日志里的 1xxx 等:服务端业务错误码

四位数(≥1000)的码来自服务端,是业务层面的拒绝原因,SDK 原样透传,例如: 完整清单见 服务端 API · 错误码
Token 与一次会话绑定,进程离开频道后该会话即失效。复用同一个 Token 起第二个进程会拿到 1032(在 C 侧表现为 RTC_ERROR)—— 每个进程都要单独签发 Token。

返回值检查建议

所有返回 int 的接口都应检查返回值。加入频道这类关键路径失败时必须走清理流程,避免句柄泄漏:
rtc_create / rtc_create_local_track 返回的是指针,失败时为 NULL,判空即可。