加入第一个 RTC 频道
本指南使用视频 ticket 频道:业务服务端创建频道并授权用户,已登录的 Web 客户端加入。频道独立于 IM 群和呼叫邀请。各端支持范围见频道概述。
1. 确认开通和版本
在控制台确认应用音视频策略及套餐允许音视频,并请平台开启应用频道灰度。客户端需使用含频道 API 的 SDK,运行配置 rtc_channels_enabled=true、rtc_channels_protocol_version=1;本轮源码已实现,SDK 制品尚未发布,实际服务开通情况以应用配置为准。
App Token、用户创建与登录凭证获取沿用发送第一条消息。以下 $IM_API、$ORG、$APP、$APP_TOKEN 同服务端接入概述。
2. 创建频道
业务服务端执行:
bash
curl -X PUT "$IM_API/$ORG/$APP/rtc/channels/meeting-demo" \
-H "Authorization: Bearer $APP_TOKEN" -H "Content-Type: application/json" \
-d '{"name":"项目会议","media":"video","access_mode":"ticket","max_participants":16}'成功响应的 channel.channel_id 用于客户端加入。创建参数和重放规则见频道管理。
3. 为用户签票据
假设 alice 已是本应用的可用用户:
bash
curl -X POST "$IM_API/$ORG/$APP/rtc/channels/meeting-demo/tickets" \
-H "Authorization: Bearer $APP_TOKEN" -H "Content-Type: application/json" \
-d '{"users":[{"username":"alice","role":"publisher"}],"ttl_seconds":120}'把 alice 对应的 ticket 经自己的已鉴权业务接口交给 alice;不要交给其他用户或写入日志。响应丢失不能自动重试签发,规则见频道票据。要加入第二人,对该用户独立签发票据。
4. 登录后加入
以下 im 已按Web 快速集成登录为 alice,票据保留在内存变量中:
ts
if (!im.channels.supported) throw new Error('当前环境不支持频道媒体');
const channel = await im.channels.join('meeting-demo', {
ticket: ticketFromBusinessServer,
});
// 用户点击麦克风 / 摄像头按钮后调用,默认均关闭。
await channel.setMicrophoneEnabled(true);
await channel.setCameraEnabled(true);
// 页面退出时:
await channel.leave();媒体显示、订阅、取消和恢复见Web 频道。Android、Flutter/iOS、Tauri 和 UniApp H5 的接入入口见客户端平台表。
5. 查看状态与用量
控制台应用详情的“RTC 频道”可查频道与会话,并移出或封禁成员、关闭频道;developer 只读,admin 可管理。用量定稿与计费更正见统计接口和套餐与账单。
同一用户不能同时参与原通话和频道;退出后媒体尚未回收时可能暂时忙线。202 表示清理中,不能据此认为占用已经释放。
