int 的接口统一使用下面 5 个取值,RTC_OK 为 0,失败一律为负数。
取值说明
RTC_ERROR 是一个笼统的失败码。具体原因用 rtc_get_last_error 取(0.0.9 起),它返回的就是下面两节的 180xxx / 1xxx 错误码。也可以调高日志级别看原因:180001: Not in channel 或 1021: ...。这两类码的区别见下面两节。日志里的 180xxx:SDK 层错误
C 接口的这 5 个返回值只描述”调用层面”的结果,不携带原因。原因用 rtc_get_last_error 取,也会打在日志里,其中以 180 开头的 6 位码是 SDK 自身产生的错误:180 是服务端 / 嵌入式这种接入方式的前缀,后三位是具体错误,各端 SDK 的后三位统一(编号规则见 错误码规则)。SDK 自身错误的原因是英文,请按错误码判断,不要按文案判断。
日志里的 1xxx 等:服务端业务错误码
四位数(≥1000)的码来自服务端,是业务层面的拒绝原因,SDK 原样透传,例如:
完整清单见 服务端 API · 错误码。发布 / 订阅被服务端拒绝时(如
1033 并发已达上限、1035 节点满载),0.1.0 起 rtc_get_last_error 返回服务端原码,不再包成 180300 / 180301。
服务端错误原因文案的语言由 rtc_set_language 决定,不设置时跟随系统语言。
返回值检查建议
所有返回int 的接口都应检查返回值。加入频道这类关键路径失败时必须走清理流程,避免句柄泄漏:
rtc_create / rtc_create_local_track 返回的是指针,失败时为 NULL,判空即可。