简体中文

[分区]通用的P2P分区设定

P2P分区设定策略 | TUTK P2P SDK 开发指南

一、概述

TUTK P2P SDK从3.1.10版本开始,新增了区域设定的API,用以限制APP或者设备只访问指定区域的服务器,实现区域化管理和合规要求(如GDPR)。

1. 支持的分区类型

目前TUTK官方支持的区域划分:

  • 中国区:CN
  • 北美区:US
  • 欧洲区:EU
  • 亚洲区:ASIA(不含中国区)

2. 架构对比

默认全区架构示意图

图1:默认全区架构示意图(APP/设备可访问所有区域服务器)

全区架构下,APP或设备将自动匹配并访问所有区域的服务器,适用于无区域限制的全球化部署场景。

分区架构示意图

图2:分区架构示意图(APP/设备仅访问指定区域服务器)

分区架构下,APP或设备通过API指定区域后,仅会访问该区域的P2P服务器和对应Master服务器,实现区域隔离。

合规说明

若需符合GDPR(通用数据保护条例)要求,需将P2P服务器、APP端、设备端的区域统一设定为欧洲区(EU),确保数据仅在欧洲区域内传输和存储。

二、P2P服务器的分区设定

通过配置P2P服务器启动脚本中的 P2P_SERVICE_REGION 字段,指定服务器提供服务的目标区域。

启动脚本配置(bash):

#!/bin/bash export P2P_LICENSE_KEY= #填写申请好的P2P License Key export P2P_SERVER_KEY= #填写申请好的Server Key export P2P_SERVICE_REGION=all #设定需要服务的区域,可选值:'asia', 'us', 'eu', 'cn' 或 'all' export P2P_LOCAL_REGION=non-cn #P2P服务器物理区域,可选值:'cn'(中国区)或 'non-cn'(非中国区) CUR_DIR=$(cd `dirname $0`; pwd) #获取程序运行目录(用于开机重启路径配置) s=1 while [ "$s" != "0" ] do    if [ $(ps -A | grep -c 'IOTC_Server') == "0" ]; then        ${CUR_DIR}/IOTC_Server --config=${CUR_DIR}/config.db -gP:G -p10001 &    fi    sleep 5 done

配置说明:

  • P2P_SERVICE_REGION:指定服务器服务的区域,例如欧洲区服务器填写 eu,需与APP/设备端设定的区域一致;
  • P2P_LOCAL_REGION:服务器物理部署区域,仅区分 cnnon-cn,用于网络优化;
  • -gP:G:替换为实际的VPG标识(VID:PID:GID组合),绑定目标设备群组。

三、APP和设备端的区域设定

APP和设备端通过SDK提供的专用API设定区域,需根据SDK版本选择对应接口,且区域设定必须在SDK初始化前完成。

(一)API定义

1. SDK 4.3.3以下版本(APP端+设备端通用)

#include "TUTKGlobalAPIs.h" /** * @brief 设定区域编码(全局生效) * @param region 区域字符串(SDK预定义常量) * @return 0:成功,非0:失败 */ TUTK_GLOBAL_APIs int32_t TUTK_SDK_Set_Region_Code(const char * region);

2. SDK 4.5.0以上版本(区分APP端和设备端)

// 设备端API(与低版本兼容) #include "TUTKGlobalAPIs.h" TUTK_GLOBAL_APIs int32_t TUTK_SDK_Set_Region_Code(const char * region); // APP端API(支持单设备精准设定) #include "IOTCAPIs.h" /** * @brief 带区域设定的P2P连线接口 * @param cszUID 目标设备UID * @param SID 会话ID(通过IOTC_Get_SessionID()获取) * @param connectInput 连线参数(含区域信息) * @return 0:成功,非0:失败 */ int32_t IOTC_Connect_ByUIDEx(const char * cszUID, int32_t SID, IOTCConnectInput* connectInput);

区域常量说明:

SDK预定义区域字符串常量,直接调用无需手动输入:

  • REGION_STRING_CN:"cn" //中国区
  • REGION_STRING_US:"us" //北美区
  • REGION_STRING_EU:"eu" //欧洲区
  • REGION_STRING_ASIA:"asia" //亚洲区(不含中国)

(二)代码示例

1. 设备端示例(所有SDK版本通用):

// 步骤1:设定区域(必须在IOTC_Initialize2之前调用) TUTK_SDK_Set_Region_Code(REGION_STRING_EU); // 设定为欧洲区 // 步骤2:初始化SDK IOTC_Initialize2(SDK_LICENSE_KEY); // 后续执行设备相关逻辑

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 物联智慧科技(深圳)有限公司版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部