适用场景
适用于出货区域预先不确定,然后又需要做分区处理的场景。
部署策略
每个区域都要部署P2P服务器,并且每个区域的P2P服务器需要挂载目标VPG(UID),可参考下图:
- VPG1 VPG2为目标群组(UID)。
- P_CN P_ASIA P_EU P_US分别为cn asia eu us区域的p2p服务器。
- M_CN M_ASIA M_EU M_US分别为cn asia eu us区域的master服务器。
- VPG1和VPG2分别配置到4个区域的p2p服务器(即绑定到对应的分区)。
- 不同区域的p2p服务器只配置本区域的master服务器。
- APP在配网的时候,根据自身的定位,把区域发送给设备。
- 设备保存自己的区域,以后都按照此区域去报到。
- APP保存设备的区域,以后都按照此区域去连线。
服务器配置
#!/bin/bash export P2P_LICENSE_KEY= #填写申请好的P2P License Key export P2P_SERVER_KEY= #填写申请好的Server Key export P2P_SERVICE_REGION=all #设定需要服务的区域,可以填写的值为 'asia', 'us', 'eu', 'cn' and 'all' export P2P_LOCAL_REGION=non-cn #P2P服务器所在的物理区域,可以填写的值为 'cn' or '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。
- 修改-gP:G为指定的VPG。
APP给设备设定区域的方法
根据不同的添加方式,用不同的方式设定。比如BLE的方式,在ble data里面去传输。
设备设定login区域的方法
TUTK_SDK_Set_Region_Code(REGION_STRING_EU);//指定区域为EU,必须在IOTC_Initialize2之前设定。
APP设定连线区域的方法
- 4.3.3以下版本:
TUTK_SDK_Set_Region_Code(REGION_STRING_EU);//指定区域为EU,必须在IOTC_Initialize2之前设定。此方法为全局设定,任何设备都默认使用此分区进行连线
- 4.3.3以上版本:
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);//填写设备所在的区域 input.timeout=10; IOTC_Connect_ByUIDEx(uid,IOTC_Get_SessionID(),&input);