流关闭回调
注意
停止混流时不会触发此回调,监听混流相关的回调请参考 混流停止回调。
描述
当开发者有维护直播列表的需求时,APP 在流媒体服务器有流关闭时,将会以 POST 的形式对回调地址进行请求。
回调说明
- 请求方法:POST。
说明
回调数据格式为 JSON,您需要对其进行 UrlDecode 解码。
- 请求地址:请在 ZEGO 控制台 上配置回调地址。
- 传输协议:HTTPS/HTTP,建议使用 HTTPS。
回调参数
| 公共参数 | 类型 | 描述 |
|---|---|---|
| event | String | 回调事件,此回调返回值为 stream_close。 |
| appid | String | AppId。 |
| timestamp | String | 服务器当前时间,Unix 时间戳。 |
| nonce | String | 随机数。 |
| signature | String | 检验串,请参考 回调说明 - 检验说明。 |
| 业务参数 | 类型 | 描述 |
| room_id | String | 房间 ID,对应客户端的 RoomID,同 channel_id 意义相同,不超过 127 字节。 |
| room_session_id | String | 房间生命周期唯一标识,在该房间的整个生命周期中保持不变。 |
| user_id | String | 用户 ID,不超过 255 字节。 |
| user_name | String | 用户昵称,不超过 255 字节。 |
| channel_id | String | 频道 ID,对应客户端的 RoomID,不超过 127 字节。 |
| type | String | 关闭类型。
|
| stream_alias | String | 流名,对应客户端的 StreamID,不超过 255 字节。 |
| stream_id | String | 流 ID,对应客户端的 StreamID,同 stream_alias 意义相同。 |
| stream_sid | String | 流 server ID, 流的唯一标识,由 ZEGO 后台生成,开发者可不关注。 |
| stream_seq | String | 服务器流列表变更的 seq,每次流变更都会加 1。 |
| third_define_data | String | 客户自定义数据。 |
| create_time_ms | String | 流创建时间,服务器当前时间,Unix 时间戳。单位:毫秒。 |
| destroy_timemillis | String | 流关闭时间,服务器当前时间,Unix 时间戳。单位:毫秒。 |
说明
建议您将部分参数转换为 Int 进行逻辑处理,相关字段包括 type、destroy_timemillis、stream_seq、create_time_ms、room_session_id。
数据示例
{
"event": "stream_close",
"appid": "1",
"timestamp": "1666786067",
"nonce": "7266888922840654370",
"signature": "xxx",
"room_id": "room1",
"room_session_id": "123456789",
"user_id": "user1",
"user_name": "user1_name",
"channel_id": "0xb-0x1",
"type": "0",
"stream_alias": "aaa",
"stream_id": "stream_id",
"stream_sid": "s-115205136669740000000000104",
"stream_seq": "700",
"third_define_data": "{\"u\":\"S1lxOUxMN2tRZ3lIY0JMSUs3VlMxZz09\"}",
"create_time_ms": "1666786067353",
"destroy_timemillis": "1666986067248"
}返回响应
返回 HTTP status code 为 2XX (例如 200)表示成功,其他响应都表示失败。
回调重试策略
如果 ZEGO 服务器没有收到响应,或收到的 HTTP status code 不为 2XX(例如 200),都会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。

