流创建回调
注意
开始混流时不会触发此回调,监听混流相关的回调请参考 混流开始回调。
描述
当开发者有维护直播列表的需求时,APP 在流媒体服务器有流创建时,将会以 POST 的形式对回调地址进行请求。
回调说明
- 请求方法:POST。
说明
回调数据格式为 JSON,您需要对其进行 UrlDecode 解码。
- 请求地址:请在 ZEGO 控制台 上配置回调地址。
- 传输协议:HTTPS/HTTP,建议使用 HTTPS。
回调参数
| 公共参数 | 类型 | 描述 |
|---|---|---|
| event | String | 回调事件,此回调返回值为 stream_create。 |
| 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,同 publish_id 意义相同,不超过 255 字节。 |
| user_name | String | 用户昵称,同 publish_name 意义相同,不超过 255 字节。 |
| channel_id | String | 频道 ID,对应客户端的 RoomID,不超过 127 字节。 |
| stream_id | String | 流 ID,对应客户端的 StreamID,同 stream_alias 意义相同。 |
| stream_sid | String | 流 server ID, 流的唯一标识,由 ZEGO 后台生成,开发者可不关注。 |
| title | String | 标题,不超过 255 字节。 |
| stream_alias | String | 流名,对应客户端的 StreamID,不超过 255 字节。 |
| stream_attr | String | 流信息。回调示例:
|
| stream_seq | String | 服务器流列表变更的 seq,每次流变更都会加 1。 |
| create_time | String | 流创建时,服务器当前时间,Unix 时间戳,单位:秒。 |
| create_time_ms | String | 流创建时,服务器当前时间,Unix 时间戳,单位:毫秒。 |
| extra_info | String | 流附加信息。 |
| recreate | String | 是否重复推流。
说明 如果遇到网络异常,且SDK 在 90 秒内重试成功,服务器会续推已存旧流,recreate 为 1,90 秒后 SDK 重试、强杀 App 重开推流、结束推流 / 退房后重推,服务器会推新流,recreate 为 0。 |
| publish_id | String | 发布者 ID,对应客户端的 UserID,不超过 255 字节。 |
| publish_name | String | 发布者名字,对应客户端的 UserName,不超过 255 字节。 |
| rtmp_url | Array of String | RTMP 拉流地址,不超过 1024 字节。 |
| hls_url | Array of String | HLS 拉流地址,不超过 1024 字节。 |
| hdl_url | Array of String | HDL 拉流地址,不超过 1024 字节。 |
| pic_url | Array of String | CDN 截图地址,不超过 255 字节。 |
说明
建议您将部分参数转换为 Int 进行逻辑处理,相关字段包括 create_time、create_time_ms、stream_seq、recreate、room_session_id。
数据示例
{
"event": "stream_create",
"appid": "1",
"timestamp": "1687981272",
"nonce": "7254119327986670314",
"signature": "xxx",
"room_id": "room1",
"room_session_id": "1234567",
"user_id": "user1",
"user_name": "user1_name",
"channel_id": "0xb-0x1",
"stream_id": "stream_id",
"stream_sid": "s-115205136669740000000000104",
"title": "title",
"stream_alias": "aaa",
"stream_attr": "{\"cid\":0}",
"stream_seq": "01",
"create_time": "1687981272",
"create_time_ms": "1687981272742",
"extra_info": "extra",
"recreate": "0",
"publish_id": "publish",
"publish_name": "publish_name",
"rtmp_url": [
"rtmp://rtmp.wsdemo.zego.im/zegodemo/aaa",
"rtmp://testplay.aliyun.zego.im/livestream/aaa"
],
"hls_url": [
"http://hls.wsdemo.zego.im/zegodemo/aaa/playlist.m3u8",
"http://testplay.aliyun.zego.im/livestream/aaa.m3u8"
],
"hdl_url": [
"http://hdl.wsdemo.zego.im/zegodemo/aaa.flv",
"http://testplay.aliyun.zego.im/livestream/aaa.flv"
],
"pic_url": [
"http://pic.wsdemo.zego.im/zegodemo/aaa.jpg"
]
}返回响应
返回 HTTP status code 为 2XX (例如 200)表示成功,其他响应都表示失败。
回调重试策略
如果 ZEGO 服务器没有收到响应,或收到的 HTTP status code 不为 2XX(例如 200),都会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。

