消息推送规范
# 功能描述
在发生告警事件、门禁权限核验事件时,熵基智联服务器会向开发者自建应用的“回调地址URL”推送相应的事件消息。
# API调用说明
假设开发者接收推送数据的URL设置为: http://api.3rd.com/receive。 当用户触发回调行为时,熵基智联会发送回调消息到填写的URL,请求内容如下:
请求方式: POST
请求地址: http://api.3rdcom/receive?sign=XXXXXXXX×tamp=XXXXXXXXXX&nonce=XXXXXXXXXX
Request Body 消息格式 :
{
"requestId":"XXXXXXXXXXXXXXXXXXXXXXXX",
"eventCode": "XXXXXXXXXXXXXXXXXXXXXXX",
"encryptData": "XXXXXXXXXXXXXXXXXXXXXXX"
}
1
2
3
4
5
2
3
4
5
参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| sign | String | 签名,token为开发者应用回调配置. sign = MD5(token+timestamp+nonce) 32位小写 |
| timestamp | Long | 当前Unix时间戳(毫秒),用于防止请求重放攻击(时间戳有效期为5分钟) |
| nonce | String | 随机数。与timestamp结合使用,用于防止请求重放攻击 |
| requestId | String | 请求Id |
| eventCode | String | 事件id,唯一不重复 |
| encryptData | String | 事件消息体加密数据 |
开发者收到消息后,需要作如下处理:
对sign进行验签
解密encryptData,得到明文的消息结构体。 具体请查看推送事件加解密。
正确响应规范:
熵基智联平台在10秒内收不到响应,将会断掉连接,并且重新发起重推。 当接收成功后,http头部返回200表示接收ok. 其他错误码, 熵基智联平台会一律当做失败并发起重试。
# 重推机制
平台通过一定的策略定期重新发起推送,尽可能提高通知的成功率,但不保证通知最终能成功, 总共9次推送。
| 间隔次数 | 间隔时间 |
|---|---|
| 第1次 | 15秒 |
| 第2次 | 30秒 |
| 第3次 | 60秒 |
| 第4次 | 5分钟 |
| 第5次 | 10分钟 |
| 第6次 | 30分钟 |
| 第7次 | 1小时 |
| 第8次 | 3小时 |
| 第9次 | 6小时 |