频道事件类型
开通声网消息通知后,声网通知服务器以 HTTPS POST 请求方法向你的服务器发送频道事件通知回调。数据格式为 JSON,字符编码为 UTF-8,签名算法为 HMAC/SHA1 或 HMAC/SHA256。
本页介绍频道事件回调中返回的各事件类型及含义。
请求的 Header
消息通知回调的 header
中包含以下字段:
字段名 | 值 |
---|---|
Content-Type | Application/json |
Agora-Signature | 声网用客户密钥和 HMAC/SHA1 算法生成的签名值。你需要使用客户密钥和 HMAC/SHA1 算法来验证该签名值。详见验证签名。 |
Agora-Signature-V2 | 声网用客户密钥和 HMAC/SHA256 算法生成的签名值。你需要使用客户密钥和 HMAC/SHA256 算法来验证该签名值。详见验证签名。 |
请求的 Body
消息通知回调的请求包体包含以下字段:
字段 | 类型 | 描述 |
---|---|---|
noticeId | String | 通知 ID,标识来自声网业务服务器的一次事件通知。 |
productId | Number | 业务 ID。值为 1 表示实时通信业务。 |
eventType | Number | 通知的事件类型。详见频道事件类型。 |
notifyMs | Number | 声网消息服务器向你的服务器发送事件通知的 Unix 时间戳 (ms)。通知重试时该值会更新。 |
sid | String | 会话 ID。 |
payload | JSON Object | 通知事件的具体内容。payload 因 eventType 而异,详见频道事件类型。 |
消息通知回调的请求包体示例:
{
"sid": "C866467GVJJ54687",
"noticeId": "2000001428:4330:107",
"productId": 1,
"eventType": 101,
"notifyMs": 1611566412672,
"payload": {...}
}
频道事件类型
声网消息通知服务可以通知实时音视频(RTC)业务中的以下频道事件:
eventType | event_name | 事件描述 |
---|---|---|
101 | channel create | 创建频道。 |
102 | channel destroy | 销毁频道。 |
103 | broadcaster join channel | 直播场景下,主播加入频道。 |
104 | broadcaster leave channel | 直播场景下,主播离开频道。 |
105 | audience join channel | 直播场景下,观众加入频道。 |
106 | audience leave channel | 直播场景下,观众离开频道。 |
107 | user join channel with communication mode | 通信场景下,用户加入频道。 |
108 | user leave channel with communication mode | 通信场景下,用户离开频道。 |
111 | client role change to broadcaster | 观众将角色切换为主播。 |
112 | client role change to audience | 主播将角色切换为观众。 |
101 channel create
eventType
为 101
表示创建频道(第一个用户加入频道),payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
ts | Number | 该事件在声网业务服务器上发生的 Unix 时间戳 (s)。 |
payload
示例:
{
"channelName": "test_webhook",
"ts": 1560396834
}
102 channel destroy
eventType
为 102 表示最后一个用户离开频道且频道销毁,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
ts | Number | 该事件在声网业务服务器上发生的 Unix 时间戳 (s)。 |
lastUid | Number | 最后一个离开频道的用户 ID。 信息 如果频道中有多人同时最后离开,则声网消息通知可能返回不同的 |
payload
示例:
{
"channelName": "test_webhook",
"ts": 1560399999,
"lastUid": 12121212
}
103 broadcaster join channel
eventType
为 103
表示直播场景下主播加入频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 主播在频道内的用户 ID。 |
platform | Number | 主播设备所属平台:
|
clientType | Number | 信息 该字段仅在 Linux 平台的主播端使用的业务类型,常见的返回值包括:
|
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
account | string | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"platform": 1,
"clientSeq": 1625051030746,
"ts": 1560396843,
"account": "test"
}
104 broadcaster leave channel
eventType
为 104
表示直播场景下主播离开频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 主播在频道内的用户 ID。 |
platform | Number | 主播设备所属平台:
|
clientType | Number | 信息 该字段仅在 Linux 平台的主播端使用的业务类型,常见的返回值包括:
|
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
reason | Number | 主播离开频道的原因:
|
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
duration | Number | 主播在频道内的时长 (s)。 |
account | string | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"platform": 1,
"clientSeq": 1625051030789,
"reason": 1,
"ts": 1560396943,
"duration": 600,
"account": "test"
}
105 audience join channel
eventType
为 105
表示直播场景下观众加入频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 观众在频道内的用户 ID。 |
platform | Number | 观众设备所属平台:
|
clientType | Number | 信息 该字段仅在 Linux 平台的观众端使用的业务类型,常见的返回值包括:
|
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
account | String | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"platform": 1,
"clientSeq": 1625051035346,
"ts": 1560396843,
"account": "test"
}
106 audience leave channel
eventType
为 106
表示直播场景下观众离开频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 观众在频道内的用户 ID。 |
platform | Number | 观众设备所属平台:
|
clientType | Number | 信息 该字段仅在 Linux 平台的观众端使用的业务类型,常见的返回值包括:
|
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
reason | Number | 观众离开频道的原因:
|
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
duration | Number | 观众在频道内的时长 (s)。 |
account | string | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"platform": 1,
"clientSeq": 1625051035390,
"reason": 1,
"ts": 1560396943,
"duration": 600,
"account": "test"
}
107 user join channel with communication mode
eventType
为 107
表示通信场景下用户加入频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 用户在频道内的用户 ID。 |
platform | Number | 用户设备所属平台:
|
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
account | string | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"platform": 1,
"clientSeq": 1625051035369,
"ts": 1560396834,
"account": "test"
}
108 user leave channel with communication mode
eventType
为 108
表示通信场景下用户离开频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 用户在频道内的用户 ID。 |
platform | Number | 用户设备所属平台:
|
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
reason | Number | 主播离开频道的原因:
|
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
duration | Number | 用户在频道内的时长 (s)。 |
account | string | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"platform": 1,
"clientSeq": 1625051037369,
"reason": 1,
"ts": 1560496834,
"duration": 600,
"account": "test"
}
111 client role change to broadcaster
eventType
为 111
表示直播场景下观众上麦,即调用 setClientRole
将用户角色从观众切换为主播,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 用户在频道内的用户 ID。 |
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
account | String | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"clientSeq": 1625051035469,
"ts": 1560396834,
"account": "test"
}
112 client role change to audience
eventType
为 112
表示直播场景下主播下麦,即调用 setClientRole
将用户角色从主播切换为观众,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
channelName | String | 频道名。 |
uid | Number | 用户在频道内的用户 ID。 |
clientSeq | Number | 序列号,标识该事件在 App 客户端上发生的顺序,可用于对同一用户的事件进行排序。详见维护用户在线状态。 |
ts | Number | 该事件在业务服务器上发生的 Unix 时间戳 (s)。 |
account | String | String 类型的用户 ID。 |
payload
示例:
{
"channelName": "test_webhook",
"uid": 12121212,
"clientSeq": 16250510358369,
"ts": 1560496834,
"account": "test"
}