跳到主要内容

📞 回调说明

📢 OpenIMSDK 提供了强大的回调功能。当某个特定事件发生前或后,IMServer 通过HTTP/HTTPS 请求方式,主动通知业务服务器。这样,业务服务器可以依据这些回调来干预事件的后续流程或进行数据同步。

📑 回调分类

根据处理时机,回调分为两大类:

  • 🚫 发送事件发生之前的回调:此类回调 (before 类型) 旨在让业务服务器干预事件处理,例如,对消息进行敏感词过滤。IMServer 会根据回调返回值来确定后续流程。

  • 📤 发送事件发生之后的通知:此类回调 (after 类型) 主要用于通知业务服务器某个事件已完成,例如,用户加入群组后,业务服务器可以进行数据同步或其他业务操作,如发送欢迎入群消息。此时,IMServer 会忽略回调的返回值和错误码。

⚙️ 配置说明

url: http://127.0.0.1:10006/callbackExample
beforeSendSingleMsg:
enable: false
timeout: 5
failedContinue: true
deniedTypes: []
beforeUpdateUserInfoEx:
enable: false
timeout: 5
failedContinue: true
  • url:业务服务器 callback 地址,支持HTTP/HTTPS
  • enable:是否开启此回调,true 为开启
  • timeout:响应超时时间(秒)
  • failedContinue:超时或HTTP/HTTPS请求失败后是否继续执行流程,true 为继续执行,只对before类型回调有效。
  • deniedTypes: 只有不在deniedTypes中的contentType消息才会发送回调,如果不设置,所有消息类型都会触发回调

🔄 回调协议

IMServer 利用第三方回调机制,基于 HTTP/HTTPS 协议。当发起回调请求时,IMServer 采用 POST 请求方法来通知业务服务器。这些请求的具体内容将直接包含在请求包体中。

请求 URL 示例

{WEBHOOK_ADDRESS}/callbackCommand?contenttype=json

请求参数说明

参数说明
{WEBHOOK_ADDRESS}webhooks.yml 中的 url 字段,域名或主机名,例如http://127.0.0.1:10006/callbackExample
callbackCommand回调命令,可在各个回调方法说明中具体查看
contenttype请求入参,为json类型
header名示例值选填类型说明
operationID1646445464564必填string用于全局链路追踪,建议使用时间戳,在每个请求中独立