-
Notifications
You must be signed in to change notification settings - Fork 16
xp2p
donghu-jiang edited this page Jan 13, 2021
·
2 revisions
- 版本:v2.0
- 修改内容:
- 增加url说明
- 修改时间:2021.01.08
- 版本:v3.0
- 修改内容:
- 增加在C++层从后台获取peername相关函数接口及说明
- 新增接口:setQcloudApiCred(),setDeviceInfo()
- 变动接口:startServiceWithPeername(),该版本参数可传入空指针
- 修改时间:2021.01.11
- 版本:v4.0
- 修改内容:
- 修改部分接口名称:
- startServiceWithPeername改为startServiceWithXp2pInfo
- 增加设置peername物模型属性名称接口
- 修改部分接口名称:
- 修改时间:2021.01.13
int startServiceWithXp2pInfo(String xp2p_info);
- 函数说明:初始化app上的p2p通道
- 参数说明:
- xp2p_info:获取的camera端生成的xp2p信息
- 返回值:
- 成功:返回0
- 失败:返回错误码
- 说明:
- xp2p_info通过C++层获取时参数可传入空指针
void stopService();
- 函数说明:退出xp2p并释放对应的资源
- 参数说明:⽆参数
- 返回值:⽆返回值
String delegateHttpFlv();
- 函数说明:获取p2p通道建立后提供的本地url
- 参数说明:无参数
- 返回值:
- 成功:返回构建的url
- 失败:返回空字符
- 返回值说明:
- 返回的url是标准url(如:http://127.0.0.1:40079/app.xnet/ipc.p2p.com/),使用前需拼接成具体请求的url
- 如需请求直播数据,则在返回的url后拼接
ipc.flv
int dataSend(uint8_t *data, size_t len);
- 函数说明:通过建立的p2p通道发送数据
- 参数说明:
- data:数据缓存地址
- len:要发送的数据长度
- 返回值:
- 成功:0
- 失败:错误码
int setQcloudApiCred(const char *sec_id, const char *sec_key);
- 函数说明:设置云API secret_id和secret_key
- 参数说明:
- sec_id:存储云API secret_id的指针
- sec_key:存储云API seret_key的指针
- 返回值:
- 成功:0
- 失败:错误码
int setDeviceInfo(const char *pro_id, const char *dev_name);
- 函数说明:设置设备信息
- 参数说明:
- pro_id:产品id
- dev_name:设备名称
- 返回值:
- 成功:0
- 失败:错误码
int setXp2pInfoAttributes(const char *attr);
- 函数说明:设置物模型中xp2p信息属性名称
- 参数说明:
- attr:属性名称
- 返回值:
- 成功:0
- 失败:错误码
void *runSendService();
- 函数说明:启动p2p发送服务
- 参数说明:无参数
- 返回值:
- 成功:创建的服务句柄
- 失败:空指针
int stopSendService(void *srvice_id);
- 函数说明:停止数据发送服务
- 参数说明:
- srvice_id:要停止的服务句柄,即runSendService()的返回值
- 返回值:
- 成功:0
- 失败:错误码
终版规划:
-
iot video app端通过iot接口向后台请求,目前具体接口暂未确定.C++层不涉及和后台交互接口。
-
macrovideo demo的做法:
- camera启动后将生成的xp2p信息通过mqtt上传到iot hub设备影子作为存储
- app端启动后通过curl命令向云API发送获取设备影子请求,从而获取到camera上报的xp2p信息
- 风险点:需等camera段完全启动且将xp2p信息上报到后台后app端才能启动,不然app端获取到的xp2p信息是camera上一次启动是上报的,导致双方连接失败
-
iot video使用explorer平台,不再涉及设备影子功能,目前规划app通过iot接口获取xp2p信息且该操作对用户隐藏
-
演示阶段,xp2p信息暂由C++层通过云API获取,所需加密信息由我方提供,不向用户暴露
v2.0/v3.0/v4.0版本规划:
- xp2p信息由C++层通过云API接口从explorer后台获取
- 函数接口调用顺序:
- setQcloudApiCred
- setDeviceInfo
- setXp2pInfoAttributes
- startServiceWithXp2pInfo:参数可为空指针
- 其他接口