消息回调对接
该文档用于描述通过回调接口方式接收慧视云开放平台消息。该方式需要开发者提供httpServer服务,当平台设备产生消息时,通过调用开发者提供的httpServer服务地址,将消息通知给开发者。开发者需要按照平台约定的消息格式进行解析,并按照平台约定的响应结果进行回复,未按约定回复成功的消息,平台将尝试推送三次。三次后消息被抛弃。
用户设置的回调地址需要根据平台侧约定的header内容和相应内容进行包装,下面以设备上线消息说明。其他消息格式请参考消息格式说明。
请求头
参数名 | 参数值 | 是否必须 |
---|---|---|
Content-Type | application/json | 是 |
请求报文体
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
messageType | String | 是 | 事件类型=channel_name_notice_message |
alarmTime | String | 是 | 报警时间,RFC3339格式 |
messageData | Object | 是 | 消息内容(详情见下表) |
messageData内容如下:
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
deviceSn | String | 是 | 设备序列号 |
deviceName | String | 是 | 设备名称 |
videoChannels | object [] | 是 | 视频通道列表 |
videoChannels内容如下:
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
channelId | int | 是 | 通道ID |
channelName | String | 是 | 视频通道名称 |
//示例数据
{
"messageType": "channel_name_notice_message",
"alarmTime": "2020-08-27T18:32:52.000+08:00",
"messageData": {
"deviceSn": "device_login_message",
"deviceName": "device_login_message",
"videoChannels": [
{
"channelId":0,
"channelName":"通道名称1"
}
],
}
}
第三方平台应相应的报文内容
名称 | 类型 | 是否必须 | 备注 |
---|---|---|---|
code | int | 是 | 状态码;响应1000表示成功,其它错误会重试推送;单条消息最多重试3次 |
msg | String | 是 | 状态码解释信息 |
data | Object | 是 | 默认写死{} |
//成功示例数据
{
"code": 1000,
"msg": "OK",
"data": {}
}
//失败示例数据
{
"code": 9999,
"msg": "eror",
"data": {}
}
总结:开发者提供的httpServer接口,需要支持Content-Type=application/json,收到数据后应相应平台code=1000表示成功收到,不响应或响应其他,平台会重复推送,最多尝试三次。