回调异常缓存
本文档已不再维护,新版文档见:发送后事件回调过滤规则设置。
功能说明
环信支持发送后回调,即IM服务器会在事件发生之后,向客户的应用服务器发送请求,应用服务器可以据此进行必要的数据同步。 一般情况下,当环信服务器执行发出回调后,响应状态码非200,认为是指定服务器有网络或者其他因素导致失败。重试失败以及封禁期间的回调默认不会自动补录。
但客户有特殊需求不能丢弃回调消息情况下,请联系商务经理开通该回调异常缓存功能。
开通后,如果应用服务器接收消息回调的接口在一段时间内持续无法响应,环信IM服务器则支持将异常期间的消息缓存下来,待开发者应用服务器消息接收接口恢复正常后,可手动提交任务重新回调异常期间的消息内容。
注意:回调异常缓存功能仅支持旗舰版及以上客户开通,如需开通,请联系商务经理开通。
功能限制说明
- 异常存储过期时间默认3天,若有存储需及时补发。
- 补发重试次数建议控制在10次以内。
查询回调存储详情
接口描述
查询 AppKey 下由于异常或回调规则封禁所存储的消息集合,然后用户可以根据消息集合按需拉取。
基本信息
方法:GET
接入点: /{orgName}/{appName}/callbacks/storage/info
路径参数
参数 | 类型 | 是否必需 | 描述 |
orgName | String | 必需 | 组织唯一标识 |
appName | String | 必需 | APP 唯一标识 |
请求头
参数 | 类型 | 是否必需 | 描述 |
Authorization | String | 必需 | 鉴权token,管理员TOKEN(含)以上权限 |
响应体
参数 | 类型 | 描述 |
date | String | 代表本次可以发送的补发的时间段。 |
size | Int | 本时段消息数量。 |
retry | Int | 已经重试的次数。最开始是0。 |
请求示例
curl -X GET 'http://a1.easemob.com/easemob-demo/easeim/callbacks/storage/info' \
-H 'Authorization: Bearer {{token}}'
响应示例
{
"path": "/callbacks",
"uri": "http://a1.easemob.com/easemob-demo/easeim/callbacks",
"timestamp": 1631193031254,
"organization": "easemob-demo",
"application": "8dfb1641-b6d8-450b-bbe9-d8d45a3be39f",
"action": "post",
"data": [
{
"date": "202109091440",
"size": 15,
"retry": 0
},
{
"date": "202109091450",
"size": 103,
"retry": 1
}
],
"duration": 153,
"applicationName": "easeim"
}
补发回调存储信息
接口描述
调用接口根据存储集合进行回调补发。
基本信息
方法:POST
接入点: /{orgName}/{appName}/callbacks/storage/retry
路径参数
参数 | 类型 | 是否必需 | 描述 |
orgName | String | 必需 | 组织唯一标识 |
appName | String | 必需 | APP 唯一标识 |
请求头
参数 | 类型 | 是否必需 | 描述 |
Content-Type | String | 必需 | application/json |
Authorization | String | 必需 | 鉴权token,管理员TOKEN(含)以上权限 |
请求体
参数 | 类型 | 是否必需 | 描述 |
date | String | 必须 | 补发的时间段 |
retry | Int | 必须 | 已重试的次数 |
targetUrl | String | 非必需 | 补发消息的回调地址,如果为空,则使用原回调规则的回调地址 |
响应体
无特别说明。
请求示例
curl -X POST 'http://a1.easemob.com/easemob-demo/easeim/callback/storage/retry' \
-H 'Authorization: Bearer {{token}}' \
-H 'Content-Type: application/json' \
--data-raw '{
"date": "202108272230",
"retry": 0,
"targetUrl": "http://localhost:8000/test"
}'
响应示例
{
"path": "/callbacks",
"uri": "http://a1.easemob.com/easemob-demo/easeim/callbacks",
"timestamp": 1631194031721,
"organization": "easemob-demo",
"application": "8dfb1641-b6d8-450b-bbe9-d8d45a3be39f",
"action": "post",
"data": "success",
"duration": 225,
"applicationName": "easeim"
}
响应码说明
状态码 | 描述 |
200 | 请求成功。 |
400 | 请求参数错误,请根据返回提示检查。 |
401 | 用户权限错误。 |
403 | 服务未开通或权限不足。 |
429 | 单位时间内请求过多。 |
500 | 服务器内部错误。 |