全部產品
Search
文件中心

ApsaraVideo Live:CreateEventSub - 建立訂閱房間訊息回調

更新時間:Dec 13, 2025

建立訂閱房間訊息的回調。

介面說明

本介面用於建立訂閱房間訊息的回調。例如:在建立回調時,您可以配置回調地址、事件類型等參數。

QPS 限制

本介面的單使用者 QPS 限制為 100 次/秒。超過限制,API 呼叫會被限流,這可能會影響您的業務,請合理調用。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

live:CreateEventSub

*Rtc

acs:live::{#accountId}:rtc/{#AppId}

請求參數

名稱

類型

必填

描述

樣本值

AppId

string

訂閱的應用 ID。

9qb1****

ChannelId

string

訂閱的頻道 ID。您可通過調用 ListEventSub 介面查詢訂閱的頻道 ID。

說明
  • 如果 Users.N 參數不為空白,則此參數必填。

  • ChannelId 為*或者不填,表示為全頻道訂閱,每個 AppId 只允許 1 個全頻道訂閱。

  • 每個 AppId 最多同時允許建立 20 個訂閱。

123333

Users

array

訂閱哪些使用者的訊息,參數為空白表示訂閱該房間全部使用者(包含主播和觀眾)。格式如下所示:

Users.1=****
Users.2=****
......

string

使用者識別碼。

user1

Events

array

訂閱事件。

string

訂閱的事件,取值:

  • ChannelEvent:頻道事件。

  • UserEvent:頻道內使用者事件。

ChannelEvent

CallbackUrl

string

回調地址。回調內容請參見以下回調內容樣本。

http://****.com/callback

CallBack

通過使用者傳入的 CallbackUrl,回調使用者的內容,樣本如下所示:

Request:

POST /callbackURL

Body
application/json

{
    "MsgId": "訊息 ID",
    "MsgTimestamp": 12312324, // 訊息發送時的 Unix 時間戳記
    "SubscribeID": "訂閱 ID",
    "AppId":"",     // 產生該訊息的 appid 
    "ChannelID":"", // 產生該訊息的頻道
    "Contents": [
      {
        "Event": "UserEvent",//訂閱的事件:頻道內使用者事件
        "UserEvent": {
          "UserId": "80331631628*****",    // 使用者識別碼
          "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 使用者事件

參數類型是否必填描述
UserIdstring使用者識別碼。
SessionIdstring使用者 SessionID。
EventTagstring事件類型,取值:
Join:入會。
Leave:離會。
PublishVideo:開始推視頻流。
PublishAudio:開始推音頻流。
PublishScreen:開始畫面共用。
UnpublishVideo:停止推視頻流。
UnpublishAudio:停止推音頻流。
UnpublishScreen:停止螢幕畫面分享。
Roleupdate:角色切換。








Timestampnumber事件發生的時間戳記。
Reasoninteger入會、離會原因(僅 Join 事件有),取值:
1:正常入會、離會。
2:重連入會(當前會中已有該使用者執行個體,該使用者再次入會)。
3:跨頻道轉推。
4:逾時離會。
5:使用者啟用新的會話,當前會話被擠下線。
6:被踢出。
7:頻道解散。






Roleinteger角色類型,取值:
1:主播。
2:觀眾。

CurrentMediasinteger推流類型,取值:
1:音頻。
2:視頻。
3:螢幕畫面分享。


ChannelEvent 頻道事件

參數類型是否必填描述
EventTagstring事件類型,取值:
Open:會議開始。
Close:會議結束。

Timestampnumber事件發生的時間戳記。

回調鑒權說明

事件回調鑒權功能預設開啟,鑒權邏輯如下所示:

  • 阿里雲ApsaraVideo for Live服務發起回調請求時在 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 秒未收到用戶端心跳資訊則認定為失敗),服務端會判定用戶端異常逾時離開,併產生使用者停止推流和離會的事件回調。

返回參數

名稱

類型

描述

樣本值

object

Schema of Response

RequestId

string

請求 ID。

760bad53276431c499e30dc36f6b****

SubscribeId

string

建立的訂閱 ID。

ad53276431c****

樣本

正常返回樣本

JSON格式

{
  "RequestId": "760bad53276431c499e30dc36f6b****",
  "SubscribeId": "ad53276431c****"
}

錯誤碼

HTTP status code

錯誤碼

錯誤資訊

描述

400 InputInvalid %s. 輸入參數不合法
400 QuotaLimitError %s. 每個AppId,最多同時允許建立20個訂閱,並且只允許1個全頻道訂閱
400 ErrorInvalidCallBackUrl %s. CallBackURL無效,請檢查後重新嘗試。
500 ServerError %s. 未知錯誤,請稍後重試或提交工單諮詢。
403 NoAuth %s. 沒有許可權
404 ResourceNotExist %s. 請求資源不存在,請檢查後重新嘗試

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情