BRTC 提供消息通知服务,你可以配置一个接收回调的 HTTP/HTTPS 服务器地址来接收云端录制的事件通知。当事件发生时,BRTC 云端录制服务会将事件消息发送给 BRTC 消息通知服务器,然后 BRTC 消息通知服务器会通过 HTTP/HTTPS 请求将事件投递给你的服务器
配置回调地址如下图所示:
1
2
31
41
3
4
0
file_info成员如下
event_type 回调事件
{ "msg": "succeed" "app_id": "BZ2no1v919Die6mLc2nNOGvfqcQNSfKO", "room_id": "33669", "event_type": 31, "targer_user": "string", "stream_type": 0, "nonce": "445266", "timestamp": "1611557246", "signature": "23485d0bd35c2dba6211bf3837a732640b4c64e4", "file_info": [ { "date": "2021-07-28", "name": "BZ2no1v919Die6mLc2nNOGvfqcQNSfKO_33669_1_123456_2021-08-02 10:20:58_2021-08-02 10:20:58", "total_size":123, "oss_path":"http://xxx.com/20240417%2Fnas%2Frecord%2F9999%xxx-xxxx17024918.flv?Expires=1728874171&OSSAccessKeyId=xxx&Signature=xxxx", "created_at": "2021-08-02 10:20:58" } ], "comments":{ "des": "this room is leve 2", "leve": 2 } }
校验回调请求的发起来源是否为 BRTC 云端录制
校验方法
通过比较自行计算的 signature 与回调请求中的 signature 是否一致可以验证请求的发起方是否为 BRTC 云端录制。计算 signature 的流程如下图:
[# PHP #]
$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; }
[# Java #]
// 从请求参数中获取到 signature, timestamp, nonce string signature = request.getParameter("signature"); long timestamp = request.getParameter("timestamp"); string nonce = request.getParameter("nonce"); // 后台获取的secret string secret = secret; string[] tempArr = {secret, ""+timestamp, nonce}; Arrays.sort(tempArr); string tmpStr = ""; for (int i = 0; i < tempArr.length; i++) { tmpStr += tempArr[i]; } tmpStr = org.apache.commons.codec.digest.DigestUtils.sha1Hex(tmpStr); return tmpStr.equals(signature);
$timestamp = 1470820198; $nonce = 123412; $secret = 'secret'; 排序拼接后需要加密的原始串为: `1234121470820198secret` 加密的结果为: `5bd59fd62953a8059fb7eaba95720f66d19e4517`
录制回调
功能描述
BRTC 提供消息通知服务,你可以配置一个接收回调的 HTTP/HTTPS 服务器地址来接收云端录制的事件通知。当事件发生时,BRTC 云端录制服务会将事件消息发送给 BRTC 消息通知服务器,然后 BRTC 消息通知服务器会通过 HTTP/HTTPS 请求将事件投递给你的服务器
配置回调地址如下图所示:
回调参数
-
1
:单流录制;-
2
:混流录制-
31
: 录制完成并上传成功-
41
:录制中,房间中用户全部离开-
1
: 录制任务未开始-
2
: 录制任务进行中-
3
: 录制任务已完成-
4
: 录制任务异常结束-
0
:大流;-
1
:小流; 若对方未开启大小流,默认为大流file_info成员如下
event_type 回调事件
回调示例
来源校验
校验回调请求的发起来源是否为 BRTC 云端录制
校验方法
通过比较自行计算的 signature 与回调请求中的 signature 是否一致可以验证请求的发起方是否为 BRTC 云端录制。计算 signature 的流程如下图:
示例代码
[# PHP #]
[# Java #]
输出示例