浏览 OpenIM Guides
Guides

核心概念

梳理普通用户、APP 管理员、通知号、群组等核心模型。

复制

用户类型

在 OpenIMSDK 中,用户分为三种类型:普通用户APP 管理员系统通知号

普通用户

  • 组成userIDfaceURLnicknameex
  • 描述:普通用户通常由外部业务系统导入,代表 OpenIMSDK 中系统的标准终端用户。ex 字段作为扩展字段供业务使用。

APP 管理员

  • 权限:拥有超级权限
  • 用途:通过 APP 管理员的身份调用 REST API 直接操作 OpenIMSDK 系统。
  • 内置管理员:OpenIMSDK 服务器内置一个 APP 管理员,其 userIDimAdmin

通知号

  • 功能:APP 管理员以系统通知号的身份发送通知消息,不受好友关系和群组权限的约束。可通过 REST API 增加通知号,以及修改通知号昵称和头像。
  • 用户体验:用户收到消息后,消息会以通知号的头像和昵称显示在会话中。

群组

在 OpenIMSDK 系统中,群组功能包括以下几个方面:

群组类型

  • 单一群组类型:当前系统仅支持一种群组类型,不区分小群或大群。

群成员限制

  • 成员上限:群成员数量无限制,最高支持100,000 名成员。

进群方式

用户可以通过以下三种方式加入群组:

  1. 群成员邀请:现有群成员可以邀请新成员直接加入群组。
  2. 发送进群申请:用户需提交申请,等待群主或管理员批准后方可加入。
  3. 允许所有人加群:任何用户都可以自由加入群组,无需审批。

群组角色及权限

群组内共有三种身份,权限依次递减:

  1. 群主
  2. 管理员
  3. 普通成员

群主

  • 权限:拥有最高权限。
  • 管理功能
  • 设置多个管理员,管理员之间权限相同。
  • 解散群组。
  • 转让群主身份给其他群成员。
  • 退群前必须先转让群主身份。
  • 处理进群申请。
  • 管理群设置,如群公告、群名称等。

管理员

  • 权限:与其他管理员权限相同,次于群主。
  • 管理功能
  • 处理进群申请。
  • 管理群设置,如群公告、群名称等。
  • 对普通成员进行管理操作,例如踢出群成员、禁言成员。

普通成员

  • 权限:拥有基本的群组使用权限。
  • 功能:参与群聊,查看群公告,发送消息等。

权限管理

  • 高权限身份操作:群主和管理员可以对低权限身份进行操作,如踢出群、禁言等。
  • 管理员之间权限相同:管理员之间无上下级关系,彼此权限平等。

群主与管理员的管理功能

  • 处理进群申请:群主和管理员可以审核并处理用户的进群申请。
  • 群组设置管理:包括编辑群公告、修改群名称等。

消息和通知

消息

  • 定义:消息指由用户或系统发送的实际内容,包括文字、图片、视频等多媒体形式。
  • 功能
  • 传输内容:将消息内容传送至接收者。
  • 展示与显示:在接收端清晰展示消息内容,确保用户能够理解和查看。

通知

  • 定义:通知指由用户或系统触发的行为,以通知形式发送给相关方。
  • 用途
  • 系统同步:用于同步系统状态或操作,如群成员同步、好友列表同步等。
  • 信息展示:通知分为两种,一种用于用于向用户展示重要事件或操作结果,例如进群通知、系统公告等。另一种仅作为系统的一种通知能力,而不作为消息形态显示给用户。

消息推送

在线推送

  • 定义:当用户在线时,OpenIM 优先使用自己的长连接通道进行消息推送,此时称为在线推送。
  • 特点
  • 实时性强:消息能立即传达给接收者。
  • 稳定性:依赖长连接通道,确保消息传输的可靠性。

离线推送

  • 定义:当用户不在线时,或者 APP 被杀死,此时 OpenIMSDK 长连接无法推送消息,必须借用第三方推送服务。
  • 实现方式
  • 厂商推送:利用如 APNs(苹果推送通知服务)等厂商的推送服务进行消息传递。
  • 中国境内:一般使用 个推服务。
  • 境外:一般使用Firebase 服务。
  • 特点
  • 覆盖广:适用于各种网络环境,确保消息能在用户恢复上线时被接收。

消息存储类型

本地消息

  • 除了 jssdk 外,OpenIMSDK 的消息会根据需要进行拉取加载。对于客户端已拉取的消息,系统会将其存储在本地,统称为“本地消息”。

多端同步消息

  • 用户通常会使用多种设备,当用户从设备 A 发送消息时,该消息会同步到设备 B,这类消息称为“多端同步消息”。

离线消息

  • 用户在离线期间接收到的消息,系统会在用户重新登录后根据需要从服务器同步并加载,这些消息称为“离线消息”。

漫游消息

  • 当用户更换设备或重新安装应用时,系统会拉取并同步这些历史消息,这些消息被称为“漫游消息”。

对象存储

  • 对象存储(Object Storage)是一种用于存储海量非结构化数据的存储架构,它通过将数据存储为独立的“对象”来管理信息,每个对象包含数据本身、可扩展的元数据以及一个全局唯一的标识符(Key)。
  • 发送文件、图片、视频类型的消息一般先上传到对象存储后生成 URL,然后再发送给对方。 整个流程是 IMSDK 内部完成的,你无需关心。但需你配置 minio、oss、cos、s3 等其中一种对象存储服务。