SDKsWASM
群组概览
了解 WASM SDK 中群资料、群成员、入群申请、成员角色和群组事件的关系。
OpenIMSDK 的多人聊天使用群组承载共享资料、成员关系和权限。groupID 是群组稳定标识,发送群消息、读取群资料、管理成员和处理入群申请都使用它。当前用户聊天列表中的群会话仍由 conversationID 管理,两者不能混用。
核心数据类型
| 类型 | 用途 |
|---|---|
GroupItem | 群名称、头像、公告、群主、验证配置、成员数和扩展字段。 |
GroupMemberItem | 用户在指定群内的昵称、角色、禁言和入群信息。 |
GroupApplicationItem | 入群申请及处理状态。 |
群成员角色使用 GroupMemberRole:普通成员为 20,管理员为 60,群主为 100。客户端可以据此控制操作入口,但最终权限由 OpenIMServer 校验。
按任务查找页面
| 任务 | 页面 |
|---|---|
| 创建和维护群资料 | 创建群组、更新群名称、简介和头像、发布或更新群公告、设置群组扩展字段 |
| 设置入群和成员权限 | 设置入群验证方式、设置成员资料查看权限、设置群内添加好友权限 |
| 加入、退出或解散群组 | 加入群组、退出群组、解散群组 |
| 查询已加入群组或指定群资料 | 分页查询已加入群组、查询指定群组资料、搜索已加入群组 |
| 查询和处理入群申请 | 获取收到的入群申请、获取发出的入群申请 |
| 查询和管理群成员 | 分页查询群成员、邀请用户加入群组、移除群成员、设置管理员、转让群主 |
| 管理群聊发言权限 | 设置群组禁言、设置群成员禁言 |
状态更新
本页是群资料、当前用户加入或退出以及群组解散事件的完整归属页:
import { CbEvents } from '@openim/wasm-client-sdk';
const handlers = {
joinedAdded: ({ data }) => mergeJoinedGroup(data),
joinedDeleted: ({ data }) => removeJoinedGroup(data.groupID),
groupChanged: ({ data }) => mergeGroup(data),
groupDismissed: ({ data }) => markGroupDismissed(data.groupID),
};
openimsdk.on(CbEvents.OnJoinedGroupAdded, handlers.joinedAdded);
openimsdk.on(CbEvents.OnJoinedGroupDeleted, handlers.joinedDeleted);
openimsdk.on(CbEvents.OnGroupInfoChanged, handlers.groupChanged);
openimsdk.on(CbEvents.OnGroupDismissed, handlers.groupDismissed);
function removeGroupListeners() {
openimsdk.off(CbEvents.OnJoinedGroupAdded, handlers.joinedAdded);
openimsdk.off(CbEvents.OnJoinedGroupDeleted, handlers.joinedDeleted);
openimsdk.off(CbEvents.OnGroupInfoChanged, handlers.groupChanged);
openimsdk.off(CbEvents.OnGroupDismissed, handlers.groupDismissed);
}四个事件都按 groupID 幂等合并。Promise 成功、事件到达和重新查询校准是三个独立阶段;分页期间收到新增或删除事件时,应重置分页并从第一页重新加载。
成员事件归属分页查询群成员,申请事件归属获取收到的入群申请。
WASM SDK 的群组 API 只处理 OpenIM 群资料、成员关系和权限。公开发现、复杂目录和大规模群聊的容量治理属于业务后端与 OpenIMServer 配置,不应扩写成不存在的客户端群组类型。
这个页面有帮助吗?