资源管理主要是用于设备与平台之间,进行资源互传。实现此类功能需利用如下两个 Topic:
$resource/up/service/${productid}/${devicename}
。$resource/down/service/${productid}/${devicename}
。设备端通过 MQTT 协议发布一条消息到 $resource/up/service/${productid}/${devicename}
,进行创建设备资源上传任务,消息为 json 格式,内容如下:
{
"type":"create_upload_task",
"size":100,
"name":"zxc",
"md5sum":"************",
}
创建成功,后台通过 $resource/down/service/${productid}/${devicename}
返回资源上传的链接,消息为 json 格式,内容如下:
{
"type":"create_upload_task_rsp",
"size":100,
"name":"zxc",
"md5sum":"************",
"url":"https://iothub.cos.ap-guangzhou.myqcloud.com/********"
}
资源上传使用 HTTP PUT 请求,所以 header 需要添加 MD5 值(base64 编码)。资源上传过程中,设备端通过 $resource/up/service/${productid}/${devicename}
上报资源上传进度,消息为 json 格式,内容如下:
{
"type":"report_upload_progress",
"name":"zxc",
"progress":{
"state":"uploading",
"percent":89,
"result_code":0,
"result_msg":""
}
}
进度上报响应,通过 $resource/down/service/${productid}/${devicename}
下发给设备,消息为 json 格式,内容如下:
{
"type":"report_upload_progress_rsp",
"result_code":0,
"result_msg":"ok"
}
设备端通过 $resource/up/service/${productid}/${devicename}
上报消息,查询下载任务,消息为 json 格式,内容如下:
{
"type":"get_download_task"
}
如果存在下载任务,则通过 $resource/down/service/${productid}/${devicename}
下发结果,消息为 json 格式,内容如下:
{
"type":"get_download_task_rsp",
"size":372338,
"name":"AAAA",
"md5sum":"a567907174*****3bb9a2bb20716fd97",
"url":"https://iothub.cos.ap-guangzhou.myqcloud.com/********"
}
资源下载进度通过 $resource/up/service/${productid}/${devicename}
进行上报,消息为 json 格式,内容如下:
{
"type":"report_download_progress",
"name":"zxc",
"progress":{
"state":"downloading",
"percent":89,
"result_code":0,
"result_msg":""
}
}
进度上报响应,通过 $resource/down/service/${productid}/${devicename}
下发给设备,消息为 json 格式,内容如下:
{
"type":"report_download_progress_rsp",
"result_code":0,
"result_msg":"ok"
}
本页内容是否解决了您的问题?