回调异常缓存

本文档已不再维护,新版文档见:发送后事件回调过滤规则设置


环信支持发送后回调,即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 服务器内部错误。