IM 即时通讯
Android
开发指南

聊天室概述

更新时间: 2024/01/19 11:28:07

功能概述

聊天室是一种比群组更加松散、开放的形态,类似于一个广场,没有严格的准入机制,用户进出自由,一般来说也没有太固定的成员组织架构。典型的应用场景即我们非常熟悉的娱乐直播、教育直播内的聊天室。聊天室是一项付费拓展能力,需要在选购IM基础功能的情况下增购。

聊天室相当于一个广场,只要有人看到了进入广场的门,任何人随时都可以进来,也可以随时离开。而群就像是一个公司,公司是一个更加私密的组织,必须是这个组织内的成员才能进入,成为成员可以是主动申请也可以是被邀请加入。

网易云信 IM 聊天室采用多层架构设计,可以实现真正意义上的大型聊天室,参与人数无上限,又可满足消息到达的实时性要求。

聊天室与群组的区别

  • 人数支持不同

    • 聊天室支持的人数无上限。
    • 高级群支持的人数上限默认为 200 人,最大可扩展至 2000 人。
    • 超大群支持的人数上限默认为 2000 人,最大可扩展至 10000 人。
  • 权限功能不同

    • 聊天室的权限管理相对简单,默认可以自由进出(可以设置黑名单不允许进入)。
    • 群组(高级群)可以设置丰富的邀请模式、被邀请模式、验证模式等,具体请参考群组概述
  • 场景特性不同

    • 聊天室偏重临时性质,成员多为游客,游客退出聊天室或异常断开后,就和该聊天室没有关系,不再接收聊天室相关信息。
    • 群组偏重固定性质,断开连接后不会退出群组,下次登录会收到离线期间的消息,异常断开会触发消息推送。
  • 常见场景举例

    • 棋牌游戏:房间是临时性的,玩家可以自由进入和退出,应使用聊天室(即并不是人数少就用群组,而要看场景特性)。
    • 娱乐直播:观众人数众多,可以自由进入和退出,应使用聊天室。
    • 企业办公:需要设置部门/团队权限,而且需要维护历史消息,应使用群组(高级群)。

聊天室功能列表

功能 功能描述
聊天室容量 支持聊天人数无上限
新建聊天室 新建一个新的聊天室,目前仅支持从服务端创建
查询聊天室信息 包括创建者、在线人数、名称、公告、直播地址、扩展字段、是否发送更新通知时间、通知事件扩展字段
更新聊天室信息 包括创建者、在线人数、名称、公告、直播地址、扩展字段、是否发送更新通知时间、通知事件扩展字段
修改聊天室开/关状态 修改聊天室开/关闭状态,目前仅支持从服务端修改
修改聊天室自动关闭策略 分为不开启自动关闭,固定时间后自动关闭,空闲后固定时间自动关闭
目前仅支持从服务端修改
聊天室消息类型 支持文本、图片、语音、视频、文件、地理位置、通知消息、提示消息、自定义
聊天室消息历史 可查询最近10天的聊天室历史记录,发消息时可设置是否存云端历史记录
聊天室角色 聊天室角色分为固定成员和非固定成员两大类。
固定成员包括创建者、管理员、普通成员,非固定成员包括普通游客和匿名游客
聊天室黑名单 被拉黑后,将无法再进入聊天室
聊天室禁言 禁言用户可以在聊天室内,但无法发送消息
聊天室临时禁言 聊天室支持设置临时禁言时长,禁言时长时间到了,自动取消禁言
聊天室全员禁言 设置聊天室整体禁言状态,仅创建者和管理员能发言
踢出聊天室 仅管理员可以踢,如目标是管理员仅创建者可以踢
修改自己的聊天室成员信息 目前只支持聊天室昵称,头像和扩展字段的更新
同时进入多个聊天室 支持统一帐号同时进入多个聊天室,会建立多个连接
多端同时进入一个聊天室 支持同一帐号在多端同时进入同一个聊天室
聊天室机器人 往聊天室内批量添加、删除机器人,每次最多 100 个帐号
TopN 指标查询 按小时/天查询聊天室进入人数、活跃人数、消息量的 TopN 数据
聊天室队列 针对直播连麦场景使用

聊天室角色

聊天室角色分为固定成员和非固定成员两大类。

  • 固定成员属于聊天室的常驻成员,无论用户当前是否在线/在聊天室里,都可以作为聊天室成员被获取到,目前固定成员包括:创建者、管理员、普通成员
  • 非固定成员包括普通游客和匿名游客,游客离开聊天室或下线后,将不再出现在聊天室用户列表内
角色 角色描述
创建者 拥有最高权限,包括设置管理员、拉黑、禁言、踢人、设置普通成员
管理员 管理员具有拉黑、禁言、踢人、设置普通成员权限
普通成员 普通成员主要区别于游客,即使离开聊天室当前不在线,也可以作为聊天室成员被获取到
普通游客 普通游客是以登录状态进入聊天室内的用户,且未被设置为固定成员
匿名游客 匿名游客在无需登录的情况下即可进入聊天室,相比于普通游客,匿名游客不支持发消息、被禁言、被拉黑、被设置为管理员/普通成员等操作

聊天室标签功能

聊天室标签功能,可以灵活地支持将聊天室消息向聊天室内部分成员下发,也支持仅接收特定的消息。

主要应用于以下场景:

场景一:超级小班课

大型多人课堂与小班互动模式结合。1名老师授课时,可将学生分成若干个小班,在小班内进行管理与教学互动,可兼顾直播大班课的教学成本优势和小班课的互动教学效果。

上图是一个典型的超级小班课场景:

  • 所有的班级成员均在同一个聊天室下
  • 授课老师可以向所有班级发送消息,也可接收所有班级的讨论信息
  • 学生仅可以接收班级内的讨论消息,所发送的消息也只能在班级内可见
  • 助教角色可自行配置,既可以管理1个班级,也可以管理多个班级

场景二:大型直播聊天室

大型直播聊天室场景下,考虑到弹幕刷屏、争论现象,可以对用户进行标签化分组,可以达到以下场景的效果:

  • 多位艺人明星同场直播,艺人明星的粉丝可以内部互动,不同明星之间的粉丝不互动
  • 体育竞技、电子竞技等,比赛双方的观众可以选择支持的战队,仅在战队粉丝内部互动
  • 根据用户特点制订适合自己应用的标签策略,同一个聊天室内,同好、同年龄段的用户之间互相交流

聊天室流控机制

聊天室存在流量控制机制(以下简称“流控机制”),即用户在聊天室发送大量消息时,部分消息可能丢失。

为保证用户体验(如避免服务器过载),目前针对消息接收,有以下流控机制。

  • 针对普通消息,聊天室用户每秒至多可接收 20 条,超过部分会因为流控随机丢弃。为避免丢失重要消息(通常为服务端消息),可将下文请求参数中的 highPriority 参数设置为 true,实现高优先级接收服务端消息,进而保证高优先级消息流控上限内的重要消息不丢失。
  • 针对高优先级消息,每秒至多接收 10 条,超过部分可能会丢失。

具体请参见发送聊天室消息中的 highPriority 参数说明。

此文档是否对你有帮助?
有帮助
去反馈
  • 功能概述
  • 聊天室与群组的区别
  • 聊天室功能列表
  • 聊天室角色
  • 聊天室标签功能
  • 聊天室流控机制