找不到 API ? 点击 反馈吧
- 域名管理
- 直播预热
- 直播拉流
- 直播流管理
- 边缘转推
- 中心转推
- 主备合流
- 直播延播
- 推流回调
- 直播安全
- 直播时移
- 直播转码
- 直播录制存储至VOD
- 直播录制存储至OSS
- 直播截图
- 直播封装
- 直播审核
- 全球加速
- 直播延迟
- 监控统计
- 用量查询
- 云导播
- 云端合流
- 直播水印
- 边缘转码
- 直播日志
- 直播监播
- 互动消息服务端接口
- 互动消息(新)
- 实时音视频
- 频道管理
- 旁路转推
- 事件回调
- 质量数据
- 实时语音转文字/翻译
- 高级功能
- 拉流转推
- 双流灾备
- 边缘脚本
- 工具箱
- 其他
CreateEventSub
创建订阅房间消息的回调
服务地址:
华东2(上海)
文档
调用结果
SDK 示例
CLI示例
相关示例
调用历史
错误码
流控
插件下载了解更多
Alibaba Cloud Developer ToolkitbetaAlibaba Cloud OpenAPI
Alibaba Cloud Developer Toolkit is a collection of extensions that can help access Alibaba Cloud services in Visual Studio Code.
安装插件之前,确保已安装 JetBrains IDE安装插件之前,确保已安装 JetBrains IDE
Alibaba Cloud Developer ToolkitbetaAlibaba Cloud OpenAPI
The Alibaba Cloud Developer Toolkit for JetBrains makes it easier to access Alibaba Cloud services.
接口说明
本接口用于创建订阅房间消息的回调。例如:在创建回调时,您可以配置回调地址、事件类型等参数。
QPS 限制
本接口的单用户 QPS 限制为 100 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。
请求参数
字段名称 | 字段详情 |
---|---|
AppIdstring | 订阅的应用 ID。 示例值:9qb1**** |
ChannelIdstring | 订阅的频道 ID。您可通过调用 ListEventSub 接口查询订阅的频道 ID。展开详情 示例值:123333参考取值来源: DescribeCasterChannels |
Usersarray<string> | 订阅哪些用户的消息,参数为空表示订阅该房间全部用户(包含主播和观众)。格式如下所示:展开详情 子级条数 <= 30 |
Eventsarray<string> | 订阅事件。 子级条数 <= 5 |
CallbackUrlstring | 回调地址。回调内容请参见以下回调内容示例。 示例值:http://****.com/callback参考取值来源: ModifyLiveMessageAppCallback |
请求说明
CallBack
通过用户传入的 CallbackUrl,回调用户的内容,示例如下所示:
Request:
POST /callbackURL
Body
application/json
{
"MsgId": "消息 ID",
"MsgTimestamp": 12312324, // 消息发送时的 Unix 时间戳
"SubscribeID": "订阅 ID",
"AppId":"", // 产生该消息的 appid
"ChannelID":"", // 产生该消息的频道
"Contents": [
{
"Event": "UserEvent",//订阅的事件:频道内用户事件
"UserEvent": {
"UserId": "80331631628*****", // 用户 ID
"EventTag": "Publish", // 事件,包括 Join, Leave, Publish, Unpublish, Roleupdate
"SessionId": "0dr15rrnhkz0jnvz6o8sxo0*****", // 产生该事件的 SessionID
"Timestamp": 1609854786, // 事件发生 Unix 时间戳
"Reason": 1, // 入会、离会原因,仅 Join 事件有
"Role": 1, // 角色类型, 主播,观众
"CurrentMedias":"1,2,3"// 推流类型:用户推了哪些流
}
},
{
"Event": "ChannelEvent",//订阅的事件:频道事件
"ChannelEvent": {
"ChannelId": "88888****",
"EventTag": "Open", // 频道事件,包括开启与关闭 Open, Close
"Timestamp": 1609854530 // 事件发生 Unix 时间戳
}
}
]
}
Response
HTTP STATUS 200
UserEvent 用户事件
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
UserId | string | 是 | 用户 ID。 |
SessionId | string | 是 | 用户 SessionID。 |
EventTag | string | 是 | 事件类型,取值: Join:入会。 Leave:离会。 PublishVideo:开始推视频流。 PublishAudio:开始推音频流。 PublishScreen:开始屏幕共享。 UnpublishVideo:停止推视频流。 UnpublishAudio:停止推音频流。 UnpublishScreen:停止屏幕共享。 Roleupdate:角色切换。 |
Timestamp | number | 是 | 事件发生的时间戳。 |
Reason | integer | 是 | 入会、离会原因(仅 Join 事件有),取值: 1:正常入会、离会。 2:重连入会(当前会中已有该用户实例,该用户再次入会)。 3:跨频道转推。 4:超时离会。 5:用户启用新的会话,当前会话被挤下线。 6:被踢出。 7:频道解散。 |
Role | integer | 是 | 角色类型,取值: 1:主播。 2:观众。 |
CurrentMedias | integer | 是 | 推流类型,取值: 1:音频。 2:视频。 3:屏幕共享。 |
ChannelEvent 频道事件
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
EventTag | string | 是 | 事件类型,取值: Open:会议开始。 Close:会议结束。 |
Timestamp | number | 是 | 事件发生的时间戳。 |
回调鉴权说明
事件回调鉴权功能默认开启,鉴权逻辑如下所示:
- 阿里云视频直播服务发起回调请求时在 HTTP(S)请求头中包含 Ali-Rtc-Timestamp 和 Ali-Rtc-Signature 字段,供回调消息接收服务端进行签名认证。Ali-Rtc-Timestamp 值计算方式为:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。其中,MD5CONTENT=回调域名|Ali-Rtc-Timestamp 取值|鉴权 Key;回调域名指配置回调 URL 的域名,鉴权 Key 指用户创建 AppId 时生成的 AppKey。
- 回调消息接收服务端接收回调消息时,将回调域名、Ali-Rtc-Timestamp 取值、鉴权 Key 进行拼接后计算 MD5 值,得到加密字符串,再将计算出的加密字符串与音视频通信服务发起的 HTTP(S)请求头中的 Ali-Rtc-Signature 字段值进行对比,如果不一致,则请求非法。
回调异常重试
阿里云发起回调请求时,仅当您的业务服务器响应 HTTP 状态码为 200 时认定为回调成功。若回调失败,阿里云会重试 7 次,分别间隔 1 秒、2 秒、5 秒、10 秒、1 分钟、2 分钟、5 分钟。每次重试请求均会产生对应的回调记录。
异常处理
已经入会或者推流的客户端和阿里云的服务端有心跳保活机制,当客户端因为断网、App 关闭异常等原因导致心跳保活失败(90 秒未收到客户端心跳信息则认定为失败),服务端会判定客户端异常超时离开,并产生用户停止推流和离会的事件回调。
返回参数
字段名称 | 字段详情 |
---|---|
RequestIdstring | 请求 ID。 示例值:760bad53276431c499e30dc36f6b**** |
SubscribeIdstring | 创建的订阅 ID。 示例值:ad53276431c**** |
变更历史