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. Use groupID to specify the group when sending group messages, reading group profiles, managing members, or processing join applications. A group conversation in the current user's chat list is specified 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 provides the complete listeners for group profile changes, the current user joining or leaving, and group dismissal:

import { SdkEvent } 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(SdkEvent.OnJoinedGroupAdded, handlers.joinedAdded);
openimsdk.on(SdkEvent.OnJoinedGroupDeleted, handlers.joinedDeleted);
openimsdk.on(SdkEvent.OnGroupInfoChanged, handlers.groupChanged);
openimsdk.on(SdkEvent.OnGroupDismissed, handlers.groupDismissed);

function removeGroupListeners() {
  openimsdk.off(SdkEvent.OnJoinedGroupAdded, handlers.joinedAdded);
  openimsdk.off(SdkEvent.OnJoinedGroupDeleted, handlers.joinedDeleted);
  openimsdk.off(SdkEvent.OnGroupInfoChanged, handlers.groupChanged);
  openimsdk.off(SdkEvent.OnGroupDismissed, handlers.groupDismissed);
}

For all four events, use groupID to find and update the matching group, and avoid adding the same record twice. Promise completion, event delivery, and a later query returning the latest data are separate stages. If an add or delete event arrives during pagination, reset pagination and reload from the first page.

See List group members for the complete member-event listeners and Get received group applications for the complete application-event listeners.

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.