Skip to content
donghu-jiang edited this page Jan 13, 2021 · 2 revisions

p2p功能函数接⼝说明

版本信息

  • 版本: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();

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
    • 失败:错误码

附带说明

xp2p信息的获取

终版规划:

  • 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:参数可为空指针
    • 其他接口