|
| 1 | +--- |
| 2 | +title: '概念解释' |
| 3 | +hide_title: true |
| 4 | +sidebar_position: 2 |
| 5 | +--- |
| 6 | +# 概念解释 |
| 7 | + |
| 8 | +## 用户类型 |
| 9 | + |
| 10 | +在 OpenIM 系统中,用户分为三种类型:**普通用户**、**APP 管理员**和**通知号**。 |
| 11 | + |
| 12 | +### 普通用户 |
| 13 | + |
| 14 | +- **组成**:`userID`、`faceURL`、`nickname`、`ex` |
| 15 | +- **描述**:普通用户通常由外部业务系统导入,代表 OpenIM 系统的标准终端用户。ex字段作为扩展字段供业务使用。 |
| 16 | + |
| 17 | +### APP 管理员 |
| 18 | + |
| 19 | +- **权限**:拥有超级权限 |
| 20 | +- **用途**:通过 APP 管理员的身份调用 REST API 直接操作 OpenIM 系统。 |
| 21 | +- **内置管理员**:OpenIM 服务器内置一个 APP 管理员,其 `userID` 为 **imAdmin**。 |
| 22 | + |
| 23 | +### 通知号 |
| 24 | + |
| 25 | +- **功能**:APP 管理员以系统通知号的身份发送通知消息,不受好友关系和群组权限的约束。可通过REST API增加通知号,以及修改通知号昵称和头像。 |
| 26 | +- **用户体验**:用户收到消息后,消息会以通知号的头像和昵称显示在会话中。 |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## 群组 |
| 31 | + |
| 32 | +在 OpenIM 系统中,群组功能包括以下几个方面: |
| 33 | + |
| 34 | +### 群组类型 |
| 35 | + |
| 36 | +- **单一群组类型**:当前系统仅支持一种群组类型,不区分小群或大群。 |
| 37 | + |
| 38 | +### 群成员限制 |
| 39 | + |
| 40 | +- **成员上限**:群成员数量无限制,最高支持 **100,000** 名成员。 |
| 41 | + |
| 42 | +### 进群方式 |
| 43 | + |
| 44 | +用户可以通过以下三种方式加入群组: |
| 45 | + |
| 46 | +1. **群成员邀请**:现有群成员可以邀请新成员直接加入群组。 |
| 47 | +2. **发送进群申请**:用户需提交申请,等待群主或管理员批准后方可加入。 |
| 48 | +3. **允许所有人加群**:任何用户都可以自由加入群组,无需审批。 |
| 49 | + |
| 50 | +### 群组角色及权限 |
| 51 | + |
| 52 | +群组内共有三种身份,权限依次递减: |
| 53 | + |
| 54 | +1. **群主** |
| 55 | +2. **管理员** |
| 56 | +3. **普通成员** |
| 57 | + |
| 58 | +#### 群主 |
| 59 | + |
| 60 | +- **权限**:拥有最高权限。 |
| 61 | +- **管理功能**: |
| 62 | + - 设置多个管理员,管理员之间权限相同。 |
| 63 | + - 解散群组。 |
| 64 | + - 转让群主身份给其他群成员。 |
| 65 | + - 退群前必须先转让群主身份。 |
| 66 | + - 处理进群申请。 |
| 67 | + - 管理群设置,如群公告、群名称等。 |
| 68 | + |
| 69 | +#### 管理员 |
| 70 | + |
| 71 | +- **权限**:与其他管理员权限相同,次于群主。 |
| 72 | +- **管理功能**: |
| 73 | + - 处理进群申请。 |
| 74 | + - 管理群设置,如群公告、群名称等。 |
| 75 | + - 对普通成员进行管理操作,例如踢出群成员、禁言成员。 |
| 76 | + |
| 77 | +#### 普通成员 |
| 78 | + |
| 79 | +- **权限**:拥有基本的群组使用权限。 |
| 80 | +- **功能**:参与群聊,查看群公告,发送消息等。 |
| 81 | + |
| 82 | +### 权限管理 |
| 83 | + |
| 84 | +- **高权限身份操作**:群主和管理员可以对低权限身份进行操作,如踢出群、禁言等。 |
| 85 | +- **管理员之间权限相同**:管理员之间无上下级关系,彼此权限平等。 |
| 86 | + |
| 87 | +### 群主与管理员的管理功能 |
| 88 | + |
| 89 | +- **处理进群申请**:群主和管理员可以审核并处理用户的进群申请。 |
| 90 | +- **群组设置管理**:包括编辑群公告、修改群名称等。 |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +## 消息和通知 |
| 95 | + |
| 96 | +### 消息 |
| 97 | + |
| 98 | +- **定义**:消息指由用户或系统发送的实际内容,包括文字、图片、视频等多媒体形式。 |
| 99 | +- **功能**: |
| 100 | + - **传输内容**:将消息内容传送至接收者。 |
| 101 | + - **展示与显示**:在接收端清晰展示消息内容,确保用户能够理解和查看。 |
| 102 | + |
| 103 | +### 通知 |
| 104 | + |
| 105 | +- **定义**:通知指由用户或系统触发的行为,以通知形式发送给相关方。 |
| 106 | +- **用途**: |
| 107 | + - **系统同步**:用于同步系统状态或操作,如群成员同步、好友列表同步等。 |
| 108 | + - **信息展示**:用于向用户展示重要事件或操作结果,例如进群通知、系统公告等。 |
| 109 | + |
| 110 | +--- |
| 111 | + |
| 112 | +## 消息推送 |
| 113 | + |
| 114 | +### 在线推送 |
| 115 | + |
| 116 | +- **定义**:当用户在线时,OpenIM 优先使用自己的长连接通道进行消息推送,此时称为在线推送。 |
| 117 | +- **特点**: |
| 118 | + - **实时性强**:消息能立即传达给接收者。 |
| 119 | + - **稳定性**:依赖长连接通道,确保消息传输的可靠性。 |
| 120 | + |
| 121 | +### 离线推送 |
| 122 | + |
| 123 | +- **定义**:当用户不在线时,或者 APP 被杀死,此时 OpenIM 长连接无法推送消息,必须借用第三方推送服务。 |
| 124 | +- **实现方式**: |
| 125 | + - **厂商推送**:利用如 APNs(苹果推送通知服务)等厂商的推送服务进行消息传递。 |
| 126 | + - **中国境内**:一般使用**个推**服务。 |
| 127 | + - **境外**:一般使用**Firebase**服务。 |
| 128 | +- **特点**: |
| 129 | + - **覆盖广**:适用于各种网络环境,确保消息能在用户恢复上线时被接收。 |
| 130 | + |
| 131 | +--- |
| 132 | + |
| 133 | +## 消息存储类型 |
| 134 | + |
| 135 | +### 本地消息 |
| 136 | +- 除了 jssdk 外,OpenIM 的消息会根据需要进行拉取加载。对于客户端已拉取的消息,系统会将其存储在本地,统称为“本地消息” 。 |
| 137 | + |
| 138 | +### 多端同步消息 |
| 139 | +- 用户通常会使用多种设备,当用户从设备 A 发送消息时,该消息会同步到设备 B,这类消息称为“多端同步消息” 。 |
| 140 | + |
| 141 | +### 离线消息 |
| 142 | +- 用户在离线期间接收到的消息,系统会在用户重新登录后根据需要从服务器同步并加载,这些消息称为“离线消息” 。 |
| 143 | + |
| 144 | +### 漫游消息 |
| 145 | +- 当用户更换设备或重新安装应用时,系统会拉取并同步这些历史消息,这些消息被称为“漫游消息” 。 |
| 146 | + |
| 147 | +--- |
0 commit comments