logo
实时语音
服务端 API
当前页

回调配置说明


在使用 ZEGO 服务端 API 时,开发者可通过回调服务对接业务后台,进一步保证业务的有序和正常。

注意

回调服务不能保证完全可靠,请慎重考虑使用回调方案构建核心业务流程的风险。

使用场景

例如:

  • 客户端推流成功后,业务后台可以接收 ZEGO 服务端的 流创建回调,用于增加直播列表 (可维护直播列表)。
说明
  1. 流创建回调中的 “pic_url” 可用于鉴黄,默认 20s 一张的缓存图片。
  2. “pic_url” 只能在推流过程中使用,推流结束后无效。
  • 客户端停止推流后,业务后台可以接收 ZEGO 服务端的 流关闭回调,用于删除直播列表 (可维护直播列表)。

  • 客户端结束直播后,业务后台可以接收 ZEGO 服务端的 录制文件生成回调,用于实现点播服务。

回调配置

开发者可根据实际业务需要,在 ZEGO 控制台 的 “项目配置 > 服务端回调配置” 中进行回调信息的配置。

同时,可按需配置接收 ZEGO 回调的 URL 地址。

说明

可按如下方式查看控制台界面:

回调说明

  • 请求方法:POST。
说明

回调数据格式为 JSON,您需要对其进行 UrlDecode 解码。

  • 传输协议:HTTPS/HTTP,建议使用 HTTPS。

验证签名

为提高数据安全性,建议开发者在收到 ZEGO 服务端发出的回调时,进行本地签名计算,并与 signature 进行对比,判断该请求是否合法。

校验的使用流程如下:

1

对参数进行排序

callbacksecrettimestampnonce 三个参数按照字典序进行排序

2

计算 SHA1

将排序后的 callbacksecrettimestampnonce 拼接成一个字符串并进行sha1计算

3

校验 signature

将计算后的哈希字符串与 signature 进行校验对比,如果相同则标识该请求来源于 ZEGO

参数说明如下:

参数说明
callbacksecret服务端校验密钥。在 ZEGO 控制台 注册项目时生成,可在 “控制台 > 项目配置 > 项目信息 > 配置信息” 中查看。
timestampUnix 时间戳。
nonce随机数。

以下示例代码用于生成和检验 signature。

// 从请求参数中获取到 signature, timestamp, nonce
$signature = $_POST["signature"];
$timestamp = $_POST["timestamp"];
$nonce = $_POST["nonce"];

$secret = callbacksecret;// 控制台获取的 callbacksecret
$tmpArr = array($secret, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
    return true;
} else {
    return false;
}

输出示例如下:

PHP 示例
$nonce = 123412;
$timestamp = 1470820198;
$secret = 'secret';
// 三个参数经过排序后的顺序为:nonce、timestamp、secret
// 排序拼接后需要加密的原始串为:1234121470820198secret
// 哈希运算的结果为:5bd59fd62953a8059fb7eaba95720f66d19e4517

返回响应

返回 HTTP status code 为 2XX (例如 200)表示成功,其他响应都表示失败。

回调重试策略

如果 ZEGO 服务器没有收到响应,或收到的 HTTP status code 不为 2XX(例如 200),都会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。

Previous

场景模板配置

Next

房间创建回调