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 压缩后的数据 |