Browse SDKs · WASM
SDKsWASM

Group overview

Understand group profiles, members, applications, roles, and events in the WASM SDK.

Copy

OpenIMSDK uses groups to hold shared profiles, membership, and permissions for multi-user chats. groupID is the stable group identifier used to send group messages, read group profiles, manage members, and process join applications. A group conversation in the current user's chat list is still managed by conversationID; do not interchange the two.

Core data types

TypePurpose
GroupItemGroup name, avatar, announcement, owner, verification settings, member count, and extension data.
GroupMemberItemA user's in-group nickname, role, mute state, and join information.
GroupApplicationItemA group application and its processing state.

Group member roles use GroupMemberRole: member is 20, administrator is 60, and owner is 100. The client can use these values to control which actions are shown, but OpenIMServer performs the final permission check.

Find pages by task

State updates

This page owns the complete listeners for group profile changes, the current user joining or leaving, and group dismissal:

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);
}

Merge all four events idempotently by groupID. Promise completion, event delivery, and a reconciliation query are separate stages. If an add or delete event arrives during pagination, reset pagination and reload from the first page.

Get group members owns member events, while Get received group applications owns application events.

WASM SDK group APIs cover only OpenIM group profiles, membership, and permissions. Public discovery, complex directories, and capacity governance for large group chats belong to the application backend and OpenIMServer configuration; do not document them as nonexistent client group types.