聊天室概述
大约 4 分钟
Web 集成文档
聊天室概述
基本介绍
聊天室是支持海量用户实时互动的会话形式,适用于直播间、语聊房、在线课堂、大型活动互动等高并发、强实时的业务场景。聊天室内用户之间无固定关系,流动性较强,用户加入后即可参与互动,离开或长时间离线后 2 分钟(除了白名单成员)将自动从在线成员列表中移除。
聊天室角色
聊天室中主要包含以下角色:
| 角色 | 描述 |
|---|---|
| 聊天室所有者 | 聊天室的最高权限角色,可管理聊天室信息、成员、管理员、禁言、黑名单、白名单、公告和自定义属性等。 |
| 聊天室管理员 | 协助聊天室所有者管理聊天室,可根据权限进行成员管理、禁言管理、黑名单管理、白名单管理、公告管理等操作。 |
| 普通成员 | 加入聊天室后可在聊天室中收发消息。普通成员被禁言后不能发送消息,被加入黑名单后不能加入聊天室。 |
群组与聊天室的区别
群组和聊天室虽都支持多人实时通信,但二者面向的业务场景和成员关系存在明显差异。群组更适合成员关系相对稳定、需要长期积累会话内容和成员关系的场景;聊天室则更适合成员规模较大、进出频繁、以实时互动为核心的场景。
群组与聊天室的功能对比
见 群组概述。
功能列表
聊天室操作
Web SDK 支持对已存在的聊天室进行查询、加入、退出、信息维护以及消息收发等操作。聊天室的创建和解散通常由服务端 REST API 或控制台完成,Web SDK 客户端侧主要面向业务客户端运行时的聊天室操作。
| 功能 | 描述 |
|---|---|
| 加入聊天室 | 用户加入指定聊天室。加入成功后,该用户可在聊天室中收发消息。 |
| 退出聊天室 | 当前用户主动退出指定聊天室,或被聊天室所有者、管理员移出聊天室。成员离线超过 2 分钟后也会自动退出聊天室。退出后,该用户不再作为聊天室在线成员参与互动。 |
| 获取聊天室列表 | 获取当前应用下的聊天室列表,可用于展示可加入的聊天室入口。 |
| 获取聊天室详情 | 根据聊天室 ID 获取聊天室详情,包括聊天室名称、描述、成员数量等信息。 |
| 修改聊天室信息 | 修改聊天室名称、描述、最大成员数等基本信息。该操作需要具备相应聊天室管理权限。 |
| 发送聊天室消息 | 通过 client.chatManager 发送消息,并将 conversationType 设置为 chatRoom。 |
| 设置聊天室消息优先级 | 发送聊天室消息时可设置消息优先级。聊天室消息量较大时,低优先级消息可能被丢弃,高优先级消息会被优先投递。 |
| 管理聊天室公告 | 获取聊天室公告内容,或由具备权限的用户更新聊天室公告。 |
| 管理聊天室自定义属性 | 获取、设置或删除聊天室自定义属性,用于保存与聊天室相关的临时业务状态,例如直播状态、房间主题、麦位状态等。 |
| 监听聊天室事件 | 可监听聊天室销毁、成员加入或退出、成员被移除、聊天室信息变更、所有者变更、管理员变更、禁言状态变更、白名单变更、公告变更和自定义属性变更等事件,并据此刷新业务 UI。 |
提示
除直接调用 client.chatRoomManager 的相关方法外,你也可以先获取聊天室实体对象,再通过该对象调用聊天室详情查询、信息更新、成员管理、公告管理等相关操作。
聊天室成员管理
Web SDK 支持对聊天室成员进行查询和管理。不同操作需要当前用户具备相应权限,例如聊天室所有者或管理员权限。
| 功能 | 描述 |
|---|---|
| 获取成员列表 | 分页获取聊天室成员列表。 |
| 禁言/解除禁言成员 | 将指定的聊天室成员加入或移出禁言列表。 |
| 全员禁言 | 需要聊天室所有者或管理员权限。全员禁言时,默认聊天室所有者和管理员不禁言。 |
| 白名单管理 | 需要聊天室所有者或管理员权限。全员禁言时,白名单的成员可以发消息。 |
| 管理聊天室管理员 | 仅聊天室所有者可以对成员指定或移除管理员权限。 |
| 黑名单管理 | 需要聊天室所有者或管理员权限,被加入黑名单的成员会被移出聊天室。黑名单中的成员需要聊天室所有者主动从黑名单移除后才能再次加入聊天室。 |
