圈组
更新时间: 2024/10/08 18:17:08
圈组是网易云信 IM 即时通讯服务的全新能力,可用来帮助您构建 类 Discord 即时通讯社群。圈组与单聊(点对点聊天)、群聊、聊天室一起构成网易云信 IM 即时通讯服务的四大能力模块。
支持平台
Android | iOS | Windows/macOS | Web/uni-app/小程序 | HarmonyOS | Flutter |
---|---|---|---|---|---|
✔️️ | ✔️️ | ✔️️ | 仅 Web 支持 | -️ | ✔️ |
主要概念
圈组主要由服务器、频道、身分组三个概念组成。
服务器
圈组中的 服务器(Server)并非传统意义上的基础设施服务器,而是类指一个社群。所有的内容、兴趣、话题、关系都是以服务器为基础进行发展的。在圈组的场景下,任何行为的开始前都应该先创建一个圈组服务器。当用户开始邀请朋友时,是以圈组服务器的维度去发起邀请的。也就是说,用户的朋友加入的是圈组服务器。它是关系的集合。用户可以以 成员的身份正式加入这个关系的集合,也可以以 游客的身份 加入先进行体验再决定是否要正式加入。
圈组服务器的属性包括名称、图标、自定义字段等,相关开发说明请参考 服务器相关。
频道
频道(Channel)是社群里的话题承载者。所有频道都要在圈组服务器下创建。只有圈组服务器的成员才有可能访问该服务器的频道。
频道分为公开频道和私密频道:
类型 | 说明 |
---|---|
公开频道 |
|
私密频道 |
|
频道的属性包括名称、主题、自定义字段等,相关开发说明请参考 频道相关。
身份组
身份组是圈组功能的权限管理系统。相关集成说明请参考 身份组相关。
功能优势
优势 | 说明 |
---|---|
二级结构 | 圈组通过 服务器(Server)-频道(Channel) 二级结构组织成员和沉淀内容,通过身份组提供灵活多样的权限管理机制。 |
满足多场景通讯需求 | 频道内支持发送文字、图片、音频、视频、文件、自定义消息等多种即时消息。 |
多种消息接收策略 | 您可通过自定义服务器、频道订阅策略实现多重多样的消息接收模式。人数少于服务端设置阈值的服务器频道默认订阅接收全部消息,超过阈值的服务器频道可按需订阅。具体订阅机制请参考 圈组订阅机制。 |
高性能网络接入 | 圈组以网易云信 SDK 和 API 的形式提供服务,基于 WE-CAN(全球传输大网 提供高质量低延迟的网络接入能力。 |
功能架构
圈组的核心目的是帮助客户构建类 Discord 的即时通讯产品,所以在形态上要极度符合相关结构,具体包括:
-
Server-Channel 二级结构 (请参考 圈组二级结构详情)
-
原子化权限管理系统——身份组系统
-
基于人数的推送能力
-
消息互动
-
多样化频道类型
消息流转
圈组的消息流转过程,可通过圈组的二级结构以及身份组进行消息发送与接收的管控。同时流转环节也可包含第三方回调、内容审核和消息抄送。
具体说明请参考 图解圈组消息流转。
二级结构
传统群组劣势
群组通常包含两大元素:人和内容。在传统群组里,人和内容是强结合的,群组既承载人,也输出内容。这种强结合关系在群组规模逐渐壮大变为社群时,容易出现 少部分人说话、大部分人围观 的成员活跃问题。随着社群规模继续扩大,如仍采用传统的群组(或聊天室)模式,会加剧这个问题。
二级结构优势
Server-Channel 二级结构正是解决大社群成员活跃问题的好方法。
一个圈组服务器可包含有多个频道。用户因为圈组服务器的主题而聚集在一起,又因为不同话题(如兴趣和目的)的分散而去到不同的频道发生互动。按照话题拆分,不同的频道有各自不同的玩法规则和内容沉淀。大部分来到圈组服务器的成员可以按照想法快速去到自己所想要去到的频道。以去乐园游玩进行类比,圈组服务器就是乐园,频道就是乐园里的游乐设施。
这实现了如下两点目的:
- 成员被分散到各个频道,每个人的表达内容得到了重视。
- 成员属于同一个圈组服务器,成员间的关系没有被打散。
圈组二级结构示例如下图所示:
体验圈组
- 圈组 Demo:您可以安装圈组示例 App 或跑通示例项目源码,快速体验 类 Discord 社群应用方案。相关详情请参考 体验圈组 Demo。
- 圈组 SDK:圈组以网易云信即时通讯 IM 组件的形式提供 SDK 集成。快速接入圈组相关详情请参考 实现圈组消息收发。
前提条件
使用圈组功能前,请确保您已经完成了以下设置:
-
V10 版本已采用融合登录方案,用户只需要调用
V2NIMLoginService#login
方法登录一次,则可以同时使用 IM 与圈组,无需再单独登录圈组服务器。 -
调用
V2NIMLoginService#login
后调用QChatService#login
方法将会报错。
圈组接口模块
下图展示了圈组各核心接口模块间的联系,这里以安卓端为例。
实现圈组功能
您可以参考以下 API 和开发指南实现圈组具体功能。
核心 API 模块 | 相关集成文档 |
---|---|
nim::Server |
服务器相关 圈组服务器成员管理 |
nim::Channel |
频道相关 |
nim::Role |
身份组相关 |
nim::Message |
圈组消息收发 圈组系统通知相关 |