Group Business Overview
Group chat is a common multi-user communication method in instant messaging applications, typically involving two or more users. RC's group business supports rich group member management, mute management features, and provides offline message push and historical message roaming capabilities. It can be used for interest groups, work groups, customer service communications, and more.
Key points of group business:
-
The IM service is only responsible for delivering messages to all users in the group and does not maintain group member profiles (avatars, names, member cards, etc.) by default. If you need to host group and member profile information on RC, you can use the User Profile Hosting service (enabled by default) and utilize the group management functions provided by the hosting service.
-
When not using RC's information hosting service, group management operations such as creating/dissolving/joining/leaving groups must be implemented by the application server through RC's server API. The IM client SDK does not provide corresponding methods. See Group Management Functions below for details.
-
RC's information hosting service provides new group management capabilities, supporting group management through both server API and client SDK.
-
There is no limit to the number of groups that can be created under an App Key, with a maximum of 3000 members per group. To modify the group member limit, consult RC's business team.
-
There is no limit to the number of groups a single user can join.
-
The Cloud Storage for One-to-One and Group Messages service is enabled by default. You can use RC's message storage service to enable message history roaming. This service is available for Chat Starter Plan and Chat Pro Plan. Specific features and pricing are subject to the RC Official Pricing Page.
Service Configuration
Some basic features and value-added services of group business can be enabled and configured on the Chat settings page of the RC Console. If you need to host group and member profile information on RC, you can use the User Profile Hosting service (enabled by default).
Client SDK Usage Notes
- Only IMKit provides out-of-the-box group chat UI components. IMLib does not provide ready-to-use group chat UI components. IMKit depends on IMLib, so IMKit has all the capabilities of IMLib.
- Groups created through the information hosting service support group management functions via client SDK. This feature is supported starting from SDK version 5.12.0.
- For groups not created through the information hosting service, the client does not provide group management APIs. Group management must be completed by the App server calling the corresponding RC server API (Server API) interfaces. Alternatively, existing groups can be imported into the information hosting service through server interfaces, after which group management functions can be accessed via client SDK.
Group Management Functions
By default, RC does not host user information or manage group business logic, so all group business logic must be implemented on the App server. When not using RC's information hosting service, features like group owners, group administrators, group announcements, group invitations, and group number searches are all part of the group business logic that needs to be implemented on the App side. If you wish to host group and member profile information on RC, please enable User Profile Hosting.
- When using the information hosting service, group members will receive operation status notifications for group management actions such as creation, voluntary joining, invitation joining, kicking out, leaving, dissolving, adding administrators, removing administrators, and transferring ownership. Since these notifications are implemented using messages, they will be counted in group message distribution and downstream data statistics.
- For groups created without hosting functionality, if you want to use group hosting capabilities, you need to call the "Import Group Hosting Data" interface and set the group owner (group creator) and default group permissions before use.
- Groups without User Profile Hosting
- Groups with User Profile Hosting
The table below lists the basic group management interfaces provided by the IM server for non-hosted capabilities. Note that group management must be completed by the App backend calling the corresponding IM server API (Server API) interfaces. After enabling the information hosting service, the client can provide management APIs for hosted groups.
| Function Category | Description | RC Server API |
|---|---|---|
| Create/Dissolve Groups | Provide creator user ID, group ID, and group name to request group creation from RC server. Dissolving a group removes all member relationships. | Create Group, Dissolve Group |
| Join/Leave Groups | After joining a group, users can view new messages by default. After leaving a group, users no longer receive new messages from that group. | Join Group, Leave Group |
| Modify Group Information on RC Server | Modify group information used in RC push service. | Refresh Group Information |
| Query Group Members | Query all member user IDs of a specified group. | Query Group Members |
| Query User's Groups | Query all groups a user has joined based on user ID, returning group IDs and names. RC does not store group profile information - group profiles and member information must be maintained by developers on their application servers. If there are discrepancies in group relationships maintained by the App server, this interface can be used for verification. | Query User's Groups |
| Synchronize User's Groups | Synchronize all groups a user currently belongs to with RC server to prevent inconsistencies between the App's user-group information and RC's records. If group and member data already exists on the App Server before integrating RC services, this interface can be used to synchronize existing user-group relationships when first connecting to RC server. | Synchronize User's Groups |
| Mute Single User in Group | Mute one or more users in a specified single group or all groups. Muted users can receive and view messages from other group members but cannot send messages via client SDK. | Mute Single User |
| Mute All Group Members | Mute all members of a group. All members of a muted group cannot send messages. To allow certain users to speak, add them to the group mute allowlist. | Mute All |
| Group Mute Allowlist | When a group is fully muted, users in the mute allowlist can still send group messages. | Group Mute Allowlist |
The group hosting functions supported in the information hosting service are as follows:
| Feature Category | Description | Client API | RC Server API |
|---|---|---|---|
| Create Group | Create a group with the creator as the default group owner. | Create Group (Client) - Hosted | Create Group (Server) - Hosted |
| Group Profile Settings | Modify built-in group information such as name, avatar, introduction, and custom group profile data. | Group Profile Settings (Client) - Hosted | Group Profile Settings (Server) - Hosted |
| Batch Get Group Profiles | Retrieve profile information for multiple specified groups. | Batch Get Group Profiles (Client) - Hosted | Batch Get Group Profiles (Server) - Hosted |
| Remove Group Member | Remove specified users from a group. Only users with removal privileges can perform this operation. | Remove Group Member (Client) - Hosted | Remove Group Member (Server) - Hosted |
| Group Ownership Transfer | Transfer the group owner role to another member. The original owner can choose to remain in or leave the group after transfer. | Group Ownership Transfer (Client) - Hosted | [Group Ownership Transfer (Server) - Hosted] |
| Join Group | Users can join specified groups with no upper limit on the number of groups they can join. | Join Group (Client) - Hosted | Join Group (Server) - Hosted |
| Leave Group | Users leave specified groups and will no longer receive new messages from those groups. | Leave Group (Client) - Hosted | Leave Group (Server) - Hosted |
| Dismiss Group | Dismiss specified groups. Only group owners can perform this operation, and all member relationships will be terminated upon dismissal. | Dismiss Group (Client) - Hosted | [Dismiss Group (Server) - Hosted] |
| Remove User from All Groups | Remove specified users from all groups where they are not group owners. Users must first transfer ownership of any groups they own before being removed. | N/A | Remove User from All Groups (Server) - Hosted |
| Set Group Administrator | Designate a group member as administrator. | Set Group Administrator (Client) - Hosted | Set Group Administrator (Server) - Hosted |
| Remove Group Administrator | Revoke administrator privileges, reverting the member to regular status. | Remove Group Administrator (Client) - Hosted | Remove Group Administrator (Server) - Hosted |
| Paginated Member List | Retrieve member information for a specified group in paginated format. | Paginated Member List (Client) - Hosted | Paginated Member List (Server) - Hosted |
| Get Specified Member Info | Retrieve profile information for multiple specified members in a group. | Get Specified Member Info (Client) - Hosted | Get Specified Member Info (Server) - Hosted |
| Set Member Profile | Configure alias names and custom additional information for group members. | Set Member Profile (Client) - Hosted | Set Member Profile (Server) - Hosted |
| Group Alias Settings | Set alias names for specified groups that are visible only to the setting user, not other members. | Group Alias Settings (Client) - Hosted | Group Alias Settings (Server) - Hosted |
| Followed Group Members | Messages from followed members will bypass Do Not Disturb settings. | Followed Group Members (Client) - Hosted | Followed Group Members (Server) - Hosted |
| Paginated Group Query | Retrieve paginated lists of groups under a specified AppKey. | N/A | Paginated Group Query (Server) - Hosted |
| Paginated User Groups | Retrieve paginated lists of all groups a user has joined. | Paginated User Groups (Client) - Hosted | Paginated User Groups (Server) - Hosted |
| Group Hosting Import | For groups not created using hosting features, this interface must first set group owners and permissions before hosting functions can be used. | N/A | Group Hosting Import (Server) - Hosted |
Group Chat Message Features
Group chat message features share some APIs and configurations with one-to-one chat.
| Feature | Description | Client API | RC Server API |
|---|---|---|---|
| Send Message | Send regular or media messages (text, images, GIFs, etc.) or custom messages. Supports adding @mentions when sending messages. | Send Message | Send Group Message |
| Send Targeted Group Message | Send regular or media messages to specified group members while excluding others. | Send Targeted Group Message | Send Group Targeted Message |
| Receive Message | Listen for real-time messages or receive offline messages upon client login. | Receive Message | N/A |
| Group Message Read Receipt | After sending group messages, read status can be checked by first sending receipt requests and obtaining read data through recipient responses. | One-to-One/Group Read Receipt | N/A |
| Offline Messages | Supports offline message storage with configurable duration (1-7 days). Default stores all group messages within 7 days, with adjustable storage duration and quantity. | Manage Offline Message Storage | API not provided |
| Offline Push Notifications | Push notifications for new group messages when offline. | APNs Push Guide | API not provided |
| Recall Message | Recall successfully sent messages. | Recall Message | Recall Message |
| Local Message Search | Search locally stored messages (mobile) by keyword or user within specified conversations. | Search Messages | API not provided |
| Retrieve History Messages | Get history messages from local database or remote server. Note: Remote retrieval requires Cloud Storage for One-to-One and Group Messages service (default 6-month storage). | Get History Messages | API not provided |
| Get Message Logs | RC server can store all conversation history as compressed log files. Server APIs allow retrieval/deletion of specified app's message logs. | API not provided | Get Message Logs |
| Local Message Insertion | Insert messages into local database without sending to server or recipients. | Insert Message | N/A |
| Delete Messages | Delete specified messages or all history from local storage and server by conversation. | Delete Messages | Message Clearance |
| Message Extensions | Add status identifiers (KV pairs) to original messages, with interfaces for adding, removing, and querying extensions. | Message Extensions | One-to-One/Group Message Extensions |
| Custom Message Types | Create custom message types when built-in types are insufficient, including both regular and media message types. | Custom Message Types | N/A |
By default, new group members can only receive messages sent after joining. To view pre-join history messages, enable these two services for your App Key (note the development/production environment distinction):
Group Chat Conversation Features
Group chat conversation features are similar to one-to-one chat functionality, sharing some APIs and configurations.
| Feature | Description | Client API | RC Server API |
|---|---|---|---|
| Get Conversation | The SDK automatically generates corresponding conversations in the local database based on sent/received messages. You can retrieve the conversation list from the local database. | Get Conversation | Not available |
| Get Unread Messages | Retrieve unread messages from a specified conversation, enabling features like jumping to the first unread message or displaying all unread mentions. | Get Unread Messages | Not available |
| Handle Unread Message Count | Get or clear the unread message count in conversations for UI display purposes. | Handle Unread Count | Not available |
| Delete Conversation | Remove one or multiple conversations from the SDK-generated conversation list. | Delete Conversation | Not available |
| Conversation Draft | Save draft content to a specified conversation. | Conversation Draft | Not available |
| Typing Status | Configure whether to receive notifications for new messages in specified group conversations (default: enabled). | Typing Status | Not available |
| Manage Conversation Tags | Create and manage tag information for grouping conversations. Each user can create up to 20 tags. User-created tag data is synchronized with RC servers. | Manage Tags | Not available |
| Set/Use Conversation Tags | Group conversations using tags. | Set/Use Tags | Not available |
| Pin Conversation | Pin specified conversations to the top of the conversation list. | Pin Conversation | Pin Conversation |
| Do Not Disturb | Control whether users receive push notifications for offline messages. Supports per-conversation or per-conversation-type DND settings. | DND Overview | DND Overview |
| Multi-Device Sync for DND/Pinned Status | The SDK provides conversation status (pinned/DND) synchronization. By setting status listeners, changes made on other devices can be monitored in real-time. | Multi-Device Sync | N/A |
| Multi-Device Read Status Sync | Actively synchronize conversation read status across multiple devices under the same user account. | Sync Read Status | N/A |
Differences from Chatrooms and Ultra Groups
Refer to these documents to understand the distinctions between business types and their features: