浏览 SDKs · WASM
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 配置,不应扩写成不存在的客户端群组类型。