一、概述
4.3.5 以上的版本,SDK 提供新增參數(shù),用以設定在單個 APP 里面有多個區(qū)域的設備時,能讓同個 APP 同時訪問多個區(qū)域的設備。
例如:一個用戶有 2 個設備,分別位于 CN 區(qū)(中國區(qū)) 或 US 區(qū)(北美區(qū)),使用新版本的機制,該用戶可在同個 APP 內(nèi)同時訪問和預覽這 2 個設備的直播。
二、前期準備
如果使用公版的 master,只需更換 4.3.3 以上的 SDK,并搭配 SDK License Key 即可啟用多區(qū)域訪問功能。
三、接口設定
多區(qū)域設備訪問需分別在 APP 端和設備端進行接口配置,具體操作如下:
3.1 APP 端配置
APP 端需在設備在線檢測和連接時指定設備所在區(qū)域,通過以下接口的結構體參數(shù)設置:
IOTC_Check_Device_OnlineEx():通過IOTCCheckDeviceInput的device_region字段指定區(qū)域IOTC_Connect_ByUIDEx():通過IOTCConnectInput的device_region字段指定區(qū)域
3.1.1 相關結構體 SDK 定義
typedef struct IOTCConnectInput {
uint32_t cb; //!< Check byte for structure size
IOTCAuthenticationType authentication_type;
char auth_key[IOTC_AUTH_KEY_LENGTH]; //!< allow '0'~'9' & 'A'~'Z' & 'a'~'z'
char device_region[MAX_REGION_LENGTH + 1]; //!< use default region if set 0
uint32_t timeout; //!< set 0 as default behavior
} IOTCConnectInput;
typedef struct IOTCCheckDeviceInput {
uint32_t cb; //!< Check byte for structure size
IOTCAuthenticationType authentication_type;
char auth_key[IOTC_AUTH_KEY_LENGTH];
char device_region[MAX_REGION_LENGTH + 1];
} IOTCCheckDeviceInput;
說明:結構體中
device_region 字段用于指定設備所在區(qū)域,設置為 0 時使用默認區(qū)域。3.1.2 配置示例
// IOTC 連線
IOTCConnectInput input;
memset(&input, 0, sizeof(input));
input.cb = sizeof(input);
input.authentication_type = AUTHENTICATE_BY_KEY;
strcpy(input.auth_key, "00000000");
strcpy(input.device_region, REGION_STRING_EU); // 填寫設備所在的區(qū)域
input.timeout = 10;
IOTC_Connect_ByUIDEx(uid, IOTC_Get_SessionID(), &input);
說明:示例中指定設備區(qū)域為歐盟區(qū)(
REGION_STRING_EU),可根據(jù)實際設備位置替換為對應區(qū)域常量。3.1.3 SDK 默認區(qū)域常量定義
參考文件:
TUTKGlobalAPIs.h,SDK 提供以下默認區(qū)域常量:static const char REGION_STRING_ALL[] = "all"; // 全部區(qū)域
static const char REGION_STRING_CN[] = "cn"; // 中國區(qū)
static const char REGION_STRING_EU[] = "eu"; // 歐盟區(qū)
static const char REGION_STRING_US[] = "us"; // 北美區(qū)
static const char REGION_STRING_ASIA[] = "asia"; // 亞洲區(qū)
說明:共提供 5 種默認區(qū)域常量,覆蓋主流服務區(qū)域,可直接引用使用。
3.2 設備端配置
設備端需通過專用接口設置區(qū)域編碼,需在設置 License Key 之后調(diào)用:
3.2.1 核心接口
- 接口名稱:
TUTK_SDK_Set_Region_Code() - 調(diào)用時機:必須在
TUTK_SDK_Set_License_Key接口調(diào)用成功后執(zhí)行
3.2.2 配置示例
// 設置設備區(qū)域為中國區(qū)(需在設置 License Key 后調(diào)用)
TUTK_SDK_Set_Region_Code(REGION_STRING_CN);
說明:示例將設備區(qū)域設置為中國區(qū)(
REGION_STRING_CN),區(qū)域常量與 APP 端一致,需根據(jù)設備實際部署區(qū)域選擇。關鍵注意事項
1. 版本依賴:多區(qū)域訪問功能需 SDK 4.3.5+,低版本需升級 SDK 才能支持;
2. 區(qū)域一致性:APP 端指定的 device_region 需與設備端通過 TUTK_SDK_Set_Region_Code() 設置的區(qū)域一致,否則可能導致連接失敗;
3. 接口調(diào)用順序:設備端必須先調(diào)用 TUTK_SDK_Set_License_Key 并確保調(diào)用成功,再執(zhí)行 TUTK_SDK_Set_Region_Code();
4. 區(qū)域常量引用:APP 端和設備端需使用 SDK 內(nèi)置的區(qū)域常量(如 REGION_STRING_CN),避免手動輸入字符串導致拼寫錯誤;
