SDK初始化
更新时间:2026-10-29 10:05:40
SDK初始化
专属版SDK与通用版共用同一个初始化入口。专属版通过 InitConfig.specialAppKeyConfig 设置专属版 appKey、appSecret 与专属版数据中心域名;如需同时支持通用版设备,再设置 InitConfig.appKeyConfig。
// 导入初始化SDK头文件
import { RTCXSDKInit, RTCXSDKInitTypes, RTCXCommonTypes, RTCXLogger } from 'rtcxsdk'
配置项
专属版相关配置项如下:
/**
* SDK初始化配置
* @public
*/
export declare class InitConfig {
/**
* 接入区域(国内或海外)
*/
regionType: RegionTypeEnum;
/**
* 环境
*/
productEnv: PlatformEnvEnum;
/**
* 是否开启日志调试
*/
debug: boolean;
/**
* 通用版App配置项
*/
appKeyConfig?: AppKeyConfig;
/**
* 专属版App配置项
*/
specialAppKeyConfig?: AppKeyConfig;
/**
* 专属版数据中心 regionId,不设置时默认 0
*/
specialRegionId?: number;
/**
* 专属版初始化结果回调,与通用版初始化互不阻塞
*/
specialSdkInitFinishedCallback?: SpecialSdkInitCallback;
}
/**
* App配置项
* @public
*/
export declare class AppKeyConfig {
/**
* 数据中心服务协议,默认 HTTPS
*/
dataCenterScheme: ServerSchemeEnum;
/**
* 数据中心服务域名,如:datacenter.example.com
* 也支持携带协议前缀,如:https://datacenter.example.com
*/
dataCenterDomain?: string;
/**
* 信令协议,默认 WSS
*/
signalingScheme: ServerSchemeEnum;
/**
* 信令域名
*/
signalingDomain?: string;
/**
* 应用 appKey
*/
appKey: string;
/**
* 应用 appSecret
*/
appSecret: string;
}
/**
* 专属版初始化结果回调
* @public
*/
export type SpecialSdkInitCallback = (success: boolean, error?: Error) => void;
| 字段 | 说明 |
|---|---|
specialAppKeyConfig.appKey | 专属版应用的 appKey |
specialAppKeyConfig.appSecret | 专属版应用的 appSecret |
specialAppKeyConfig.dataCenterDomain | 专属版数据中心域名,支持带 https:// 或 http:// 前缀 |
specialAppKeyConfig.dataCenterScheme | 专属版数据中心服务协议,默认 HTTPS |
specialRegionId | 专属版数据中心 regionId,不设置时使用默认值 0 |
specialSdkInitFinishedCallback | 专属版初始化完成回调,回调参数 success 表示是否成功 |
初始化示例
专属版与通用版共存
import { RTCXSDKInit, RTCXSDKInitTypes, RTCXCommonTypes, RTCXLogger } from 'rtcxsdk'
const initConfig = new RTCXSDKInitTypes.InitConfig()
initConfig.debug = true
initConfig.productEnv = RTCXCommonTypes.PlatformEnvEnum.PROD
// 通用版配置
const commonAppKeyConfig = new RTCXSDKInitTypes.AppKeyConfig()
commonAppKeyConfig.appKey = 'your_common_app_key'
commonAppKeyConfig.appSecret = 'your_common_app_secret'
initConfig.appKeyConfig = commonAppKeyConfig
// 专属版配置
const specialAppKeyConfig = new RTCXSDKInitTypes.AppKeyConfig()
specialAppKeyConfig.appKey = 'your_special_app_key'
specialAppKeyConfig.appSecret = 'your_special_app_secret'
specialAppKeyConfig.dataCenterScheme = RTCXCommonTypes.ServerSchemeEnum.HTTPS
specialAppKeyConfig.dataCenterDomain = 'datacenter.example.com'
initConfig.specialAppKeyConfig = specialAppKeyConfig
// 专属版初始化结果回调
initConfig.specialSdkInitFinishedCallback = (success: boolean, error?: Error) => {
if (success) {
RTCXLogger.i('SDKInit', '专属版SDK初始化完成')
} else {
RTCXLogger.e('SDKInit', `专属版SDK初始化失败:${error?.message}`)
}
}
RTCXSDKInit.init(this.context.getApplicationContext(), initConfig)
.then(() => {
RTCXLogger.i('SDKInit', 'SDK初始化完成')
})
.catch((error: Error) => {
RTCXLogger.e('SDKInit', `SDK初始化失败:${error.message}`)
})
仅接入专属版
const initConfig = new RTCXSDKInitTypes.InitConfig()
const specialAppKeyConfig = new RTCXSDKInitTypes.AppKeyConfig()
specialAppKeyConfig.appKey = 'your_special_app_key'
specialAppKeyConfig.appSecret = 'your_special_app_secret'
specialAppKeyConfig.dataCenterScheme = RTCXCommonTypes.ServerSchemeEnum.HTTPS
specialAppKeyConfig.dataCenterDomain = 'https://datacenter.example.com'
initConfig.specialAppKeyConfig = specialAppKeyConfig
initConfig.specialSdkInitFinishedCallback = (success: boolean, error?: Error) => {
RTCXLogger.i('SDKInit', `专属版初始化结果:${success}, error: ${error?.message}`)
}
await RTCXSDKInit.init(this.context.getApplicationContext(), initConfig)
获取专属版 regionId
初始化时会向专属版数据中心查询网关与 STUN 地址,并解析出专属版 regionId。在没有显式传入 specialRegionId 时,SDK 会使用数据中心返回的 regionId;可通过以下接口获取:
/**
* 获取专属版数据中心 regionId
* @public
*/
export declare function getSpecialRegionId(): number;
调用示例:
const specialRegionId = RTCXSDKInit.getSpecialRegionId()
初始化说明
appKeyConfig与specialAppKeyConfig至少设置一个,否则init会抛出异常。init只能调用一次,重复调用会抛出异常;需要重新初始化时先调用uninit。- 同时配置通用版和专属版时,两侧初始化互不阻塞:任意一侧失败不会影响另一侧,专属版的结果通过
specialSdkInitFinishedCallback返回。 - 只配置专属版时,专属版初始化失败会使
init返回失败。 - 专属版初始化失败时,会抛出数据中心域名为空、数据中心响应为空等错误,请检查
specialAppKeyConfig.appKey、appSecret和dataCenterDomain。