1. 功能说明

用于设备的验证、文件传输等

2. 协议设计原则

  • 包头固定长度14个字节
  • 具体报文格式见TCP API 报文格式
  • 消息数据采用json文本协议,保证协议可读性高和扩展性
  • 所有的字段类型为string
  • 本服务类型为FTS

3. 通讯地址

tcp://[手机通过CMS的协议获得地址,在设备入网时发送给设备]:[通过CMS的协议获得端口]

4. 消息类型定义

定义 描述
0x01 设备验证
0x02 设备文件上传
0x03 设备文件下载

5. 包体详解

每个包体都包含请求示例、应答示例、请求参数说明、应答参数说明四个部分

特别说明: 所有应答,所有请求中的data字段为解密后内容,实际情况应该是加密的,比如:

  • 加密后的数据
{
    "token": "xxxxxxxxxxxxx",
    "vendor_name": "general",
    "uuid": "xxxxxxxxxxxxx",
    "username": "18888888888",
    "power": "50",
    "data": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
  • 解密后的数据
{
    "vendor_name": "general",
    "uuid": "xxxxxxxxxxxxx",
    "username": "18888888888",
    "power": "50",
    "data": {
        "timestamp": "1499681215",
        "power": "50",
        "version": "xxxxxxxx"
    }
}

5.1 设备验证

0x01

  • 请求示例
{
    "vendor_name": "general",
    "uuid": "xxxxxxxxxxxxx",
    "data": {
        "timestamp": "1499681215",
        "secret_key": "xxxxxxxxx"
    }
}
  • 应答示例

    仅需应答TCP包头

  • 请求参数说明

参数 选项 说明 备注
vendor_name 必填 设备供应商名 公共参数
uuid 必填 设备的唯一码 设备的唯一标识码
data:timestamp 必填 时间戳 设备的UNIX时间戳
data:secret_key 必填 设备密钥 用户其他服务授权
  • 应答参数说明

    仅需应答TCP包头

5.2 设备文件上传

0x02

  • 请求示例
{
    "data": {
        "start_timestamp": "1499681215",
        "transport_status": "1/20",
        "file_type": "jpg",
        "file_stream": "aHR0cHM6Ly9kb3dubG9hZC53b25seWNsb3VkLmNvbS9zbGlkZXNob3cvYmFubmVyMS5qcGc="
    }
}
  • 应答示例
{
    "data": {
        "timestamp": "1499681215",
        "file_url": "http://download.wonlycloud.com/slideshow/banner3.jpg"
    }
}
  • 请求参数说明
参数 选项 说明 备注
data:start_timestamp 必填 时间戳 开始上传文件的时间戳
data:transport_status 必填 传输状态 文件上传的传输状态,1/20代表本次文件传输一共20个数据包,当前是第1个包
data:file_type 必填 文件类型 文件的类型,jpg
data:file_stream 必填 文件内容 具体文件的内容,用base64压缩后的数据
  • 应答参数说明
参数 说明 备注
data:timestamp 时间戳 服务器的UNIX时间戳
data:file_url 文件地址 transport_status字段里当前包为1时返回此地址,其他状态仅应答TCP包头

5.3 设备文件下载

0x03

  • 请求示例
{
    "data": {
        "start_timestamp": "1499681215",
        "transport_status": "1/20",
        "file_url": "http://download-tts.wonlycloud.com/xiaoyan/wanglizhinengyuyinhechengceshichengxu.pcm"
    }
}
  • 应答示例
{
    "data": {
        "timestamp": "1499681215",
        "transport_status": "2/20",
        "file_stream": "aHR0cHM6Ly9kb3dubG9hZC53b25seWNsb3VkLmNvbS9zbGlkZXNob3cvYmFubmVyMS5qcGc="
    }
}
  • 请求参数说明
参数 说明 备注
data:start_timestamp 必填 时间戳
data:transport_status 可选 传输状态
data:file_url 必填 文件地址
  • 应答参数说明
参数 选项 说明 备注
data:timestamp 时间戳 开始下载文件的时间戳
data:transport_status 传输状态 文件下载的传输状态,2/20代表本次文件传输一共20个数据包,接着需要下载第2个包
data:file_stream 文件内容 具体文件的内容,用base64压缩后的数据