环信超级社区概述

环信超级社区(Circle)是一款基于环信 IM 打造的类 Discord 实时社区应用场景方案,支持社区(Server)、频道(Channel) 和子区(Thread) 三层结构。一个 App 下可以有多个社区,同时支持陌生人/好友单聊。用户可创建和管理自己的社区,在社区中设置和管理频道将一个话题下的子话题进行分区,在频道中根据感兴趣的某条消息发起子区讨论,实现万人实时群聊,满足超大规模用户的顺畅沟通需求。

 img

社区、频道和子区的基本概念与关系

社区(Server)是一群有着共同兴趣爱好的人的专属天地,也可以是同学朋友的社交圈子。社区是环信超级社区三层基础架构的最上层,各种消息事件均发生在社区内。任何用户均可以自由加入或退出社区,无需审批。

频道(Channel)是一个社区下不同子话题的讨论分区,因此一个社区下可以有多个频道。社区下有一个默认频道用来承载各种系统通知,社区创建者可以根据自己需求创建公开或者私密频道。

子区(Thread)是一个基于频道中某一条消息展开的讨论,用户可以某条消息为中心,与其他对此条消息感兴趣的朋友一起聚焦沟通。

通过 Server-Channel-Thread 三层架构,每个用户都可以找到属于自己的兴趣社区,并在其中与自己趣味相投的好友建立圈子。既保证同一个社区中的成员管理秩序,用户关系不会被打散,同时为每个用户提供构建专属于自己和好友的圈子,满足多维度的沟通需求。

  • 每个 app 下的社区数量以及每个社区内的成员数均无限制。
  • 单个用户最多可创建 100 个社区。单个用户默认最多可加入 100 个社区。如需调整该阈值,请联系商务。
  • 每个社区下可创建的频道无上限。用户可加入的频道数无上限。不同规模的频道,成员数上限如下:
    • 小型:2,000 人;
    • 中型:20,000 人;
    • 大型:100,000 人。
  • 每条消息只能创建一条子区。每个频道支持的子区数量无限制。

社区角色类型及权限

社区的成员包括社区所有者(Server Owner)、管理员(Server Moderator)和普通成员(User)。

社区成员角色 描述 管理权限
社区所有者 社区中权限最高的管理者 创建社区、解散社区、管理频道,指定管理员以及禁言和解除禁言社区内所有成员等。
管理员 社区管理员 拥有社区和全部频道的修改权限以及禁言和解禁普通成员等。
普通成员 社区中普通成员 社区的普通成员可以在频道和子区中收发和查看消息。
  • 每个社区只有一个社区所有者,该所有者是社区下所有频道的所有者。
  • 社区所有者可单独设置特定用户为社区管理员。
  • 社区管理员,从权限角度可以理解为社区下所有频道的管理员。

社区属性管理

社区属性包括以下六种:

  • 社区名称,不超过 50 个字符;
  • 社区描述,不超过 500 个字符;
  • 社区图标,不超过 2 MB;
  • 社区大小,可容纳人数等级,可通过升级套餐提升等级;
  • 社区标签,每个社区最多可添加 10 个;
  • 社区自定义字段,不超过 500 个字符。

社区管理操作

功能 描述
创建社区 可创建社区数量根据套餐版本有所不同。每个用户默认最多可创建 100 个社区,如需调整该阈值,请联系商务。
解散社区 解散社区需要社区所有者权限。
解散社区后将删除本地的社区数据,所有成员将收到社区解散的回调信息。
编辑社区 社区所有者和管理员可修改社区基本信息。
获取已加入社区 获取用户已加入的社区列表。
获取社区详情 用户可以获取社区的详情。
加入社区 目前所有社区都为公开,任何用户都可以搜索到。用户可以通过搜索社区名称和标签的方式加入社区,或者接受社区内成员发起的邀请加入。每个用户默认最多可加入 100 个社区,如需调整该阈值,请联系商务。
退出社区 社区所有者不支持退出社区操作,只能解散社区。
退出社区分为主动退出和被动退出,被动退出即为被社区所有者或管理员踢出社区。
踢出社区 社区所有者和管理员可将普通用户踢出社区,管理员只能被社区所有者踢出社区。
添加社区标签 社区所有者和管理员可以给社区增加标签,非社区内用户可以通过搜索标签找到社区。每个社区最多可添加 10 个标签。
移除社区标签 社区所有者和管理员可以移除社区已有标签。
分页获取社区成员列表 分页获取指定社区中的成员列表。
判断用户是否在社区内 可判断指定用户是否已经加入了指定社区。用户权限 Token 调用只能查自己,App 权限 Token 调用可以查任何用户。
搜索社区 根据社区名称和标签,搜索匹配到的社区(同时支持 REST 通过社区ID 搜索)。
邀请用户加入社区 社区中的成员可以邀请社区外的用户加入社区。
用户同意加入社区 用户在收到邀请加入社区后可以接受邀请。
用户拒绝加入社区 用户在收到邀请加入社区后可以拒绝邀请。

 社区的成员管理

功能 描述
修改社区中成员角色 社区所有者可以将管理员权限赋予社区中普通用户,或移除管理员权限将其变为普通用户。
获取用户在社区内角色 社区内成员可以获取社区内用户的角色。
禁言功能 社区所有者和管理员可以将社区下频道中成员加入或移出频道禁言列表,频道禁言列表中的成员无法在该频道发送消息,可以接收消息。

频道分为公开频道和私密频道。

公开频道对社区中所有用户可见,私密频道只对社区所有者,管理员(Moderator)和被邀请进私密频道的用户可见。

每个社区默认最多创建 100 个频道。如需调整该阈值,请联系商务。

频道属性管理

频道的属性包括以下五种:

  • 频道名称,不超过 50 个字符。
  • 频道描述,不超过 500 个字符。
  • 频道类型,包括公开和私密频道。
  • 频道大小,可容纳人数等级,可通过升级套餐提升等级;
  • 频道自定义字段(不超过 500 字符)

频道管理操作

功能 描述
创建频道 社区所有者可以在社区中创建公开或私密频道。每个社区默认最多 100 个频道,如需调整该阈值,请联系商务。
加入频道 社区成员可以自由加入社区下的公开频道,私密频道只能由私密频道中的成员邀请加入。
获取频道 社区成员可以获取社区下的自己有权限的频道。
获取社区下的所有公开频道列表 用户可以获取社区下的所有公开频道列表。
获取用户加入的频道列表 社区中成员可以获取自己已经加入的频道。
获取频道的成员列表 频道成员可以获取该频道下的成员列表。
获取当前用户加入的私密频道列表 社区所有者和管理员可以获取全部的私密频道,普通成员获取自己加入的私密频道。
编辑频道 社区所有者和管理员可以编辑频道的属性。
退出频道 社区成员可以退出自己已经加入的频道。
踢出频道 社区所有者和管理员可以将频道中普通成员踢出频道,管理员只能被社区所有者踢出频道。
删除频道 社区所有者可以删除社区中的频道。
查询用户是否在频道中 查询指定用户是否在指定频道中。
邀请用户加入频道 频道的用户可邀请社区中的用户加入该频道。
用户同意加入频道 用户在收到邀请加入频道后可以接受邀请。
用户拒绝加入频道 用户在收到邀请加入频道后可以拒绝邀请。

频道的成员管理

频道的成员角色权限

用户在频道中的角色与其社区中的角色相同,即用户在社区的角色会被继承到频道。

频道的成员管理操作

功能 描述
邀请加入频道 公开频道和私密频道中,频道中的成员均可以邀请用户加入频道。
支持需要用户确认后,再加入频道。
频道禁言/解禁 社区所有者和社区管理员可以将频道成员加入或移出禁言列表,禁言列表中的成员无法发送频道消中息,可以接收频道中消息。
获取频道下被禁言用户列表 社区所有者和社区管理员可以获取频道下被禁言用户的列表。

子区属性管理

子区名称,不超过 50 个字符。

子区管理操作

功能 描述
创建子区 用户可以在频道中创建子区。
加入子区 频道中的用户可以加入频道下的子区。
获取子区详情 用户可以获取子区的详情。
获取频道下的子区 社区中的用户可以获取自己已经加入的频道。
获取自己创建的子区 用户可以获取自己创建的子区。
获取频道下自己加入的子区 用户可以获取频道下自己加入的子区。
修改子区 社区所有者、社区管理员和子区的创建者可以更改子区的名称。
退出子区 用户可以退出自己已经加入的子区。
删除子区 社区所有者可以删除该频道中的子区。

用户

功能 描述
查询用户是否存在 查询 App Key 下用户是否存在。
获取用户在离线状态 用户可以获取在离线状态。
添加好友 用户可以添加好友。
删除好友 用户可以删除好友。

消息管理

消息相关功能可参考官网 消息管理 文档,目前不支持已读或未读回执。

功能 描述
发送消息 用户可以给指定用户、频道或子区发消息/图片/文件。
撤回消息 用户可以撤回自己发送的消息。
添加 Reaction 用户可以给消息添加 Reaction。
获取 Reaction 用户可以获取 Reaction。
删除 Reaction 用户可以删除自己添加的 Reaction。
获取 Emoji 用户可以获取 Emoji。
获取 Emoji 类 用户可以获取 Emoji 类。