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, offline message push notifications, and historical message roaming, suitable for interest groups, work groups, and customer service communications.
Key points of group business:
- The IM service is only responsible for delivering messages to all users in a 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) to manage and maintain group information.
- 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 Features 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 3,000 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 implement message history roaming. This service is available for Chat Starter Plan or Chat Pro Plan. Specific features and pricing are subject to the RC Official Pricing Page.
Service Configuration
Some basic features and value-added services for 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, 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 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 via server interfaces, after which group management functions can be accessed through the client SDK.
Group Management Features
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, administrators, announcements, invitations, and group number searches are part of the group business logic and must be implemented on the App side. If you wish to host group and member profile information on RC, enable User Profile Hosting.
- When using the information hosting service, group members will receive operation status notification callbacks for group management actions such as creation, active joining, invited joining, kicking out, leaving, dissolving, adding administrators, removing administrators, and transferring ownership. Since these notifications are implemented as 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 to set the group owner and default 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.
| Feature 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, they no longer receive new messages from the group. | Join Group, Leave Group |
| Modify Group Info on RC Server | Modify group information used in RC's push service. | Refresh Group Info |
| Query Group Members | Query user ID information for all members 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 the application server. If there are discrepancies in the server-maintained user-group relationships, this interface can be used for verification. | Query User's Groups |
| Sync User's Groups | Synchronize all groups a specified user has joined with RC server to prevent inconsistencies between the application's user-group information and RC's records. If group and member data existed on the App Server before integrating RC services, this interface can be used to sync existing user-group relationships during the first connection to RC server. | Sync User's Groups |
| Mute a User in Group | Mute one or more users in a specified group or all groups. Muted users can receive and view messages from others but cannot send messages via client SDK. | Mute a User |
| Mute All in Group | Mute all members in a group. All muted members 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 muted, users in the allowlist can still send group messages. | Mute Exceptions |
The group hosting features 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 owner. | Create Group (Client) - Hosted | Create Group (Server) - Hosted |
| Set Group Info | Modify built-in group information (name, avatar, introduction) and custom group attributes. | Set Group Info (Client) - Hosted | Set Group Info (Server) - Hosted |
| Batch Get Group Info | Retrieve information for multiple specified groups. | Batch Get Group Info (Client) - Hosted | Batch Get Group Info (Server) - Hosted |
| Remove Member | Remove a specified user from a group. Only users with removal permissions can perform this operation. | Remove Member (Client) - Hosted | Remove Member (Server) - Hosted |
| Transfer Ownership | Transfer the owner role to another group member. The original owner can choose to remain in or leave the group after transfer. | Transfer Ownership (Client) - Hosted | Transfer Ownership (Server) - Hosted |
| Join Group | A user joins a specified group. There is no limit to the number of groups a user can join. | Join Group (Client) - Hosted | Join Group (Server) - Hosted |
| Leave Group | A user leaves a specified group and no longer receives new messages from it. | Leave Group (Client) - Hosted | Leave Group (Server) - Hosted |
| Dissolve Group | Dissolve a specified group. Only the owner can perform this operation, after which all member relationships cease to exist. | Dissolve Group (Client) - Hosted | Dissolve Group (Server) - Hosted |
| Remove User From All Groups | Remove a specified user from all groups where they are not the owner. Groups where the user is the owner must first have ownership transferred before the user can be removed. | None | Remove User From All Groups (Server) - Hosted |
| Set Group Admin | Designate a group member as an administrator. | Set Group Admin (Client) - Hosted | Set Group Admin (Server) - Hosted |
| Remove Group Admin | Revoke administrator privileges, reverting the member to regular status. | Remove Group Admin (Client) - Hosted | Remove Group Admin (Server) - Hosted |
| Get Group Members (Paged) | Retrieve member information for a specified group in paginated format. | Get Group Members (Client) - Hosted | Get Group Members (Server) - Hosted |
| Get Specified Member Info | Retrieve profile information for specified members in a group. | Get Specified Member Info (Client) - Hosted | Get Specified Member Info (Server) - Hosted |
| Set Member Info | Set a group member's alias and custom additional information. | Set Member Info (Client) - Hosted | Set Member Info (Server) - Hosted |
| Set Group Alias | Set a personal alias for a specified group. This alias is only visible to the setting user and not to other members. | Set Group Alias (Client) - Hosted | Set Group Alias (Server) - Hosted |
| Follow Group Members | After following specified group members, their messages will not be affected by Do Not Disturb settings. | Follow Group Members (Client) - Hosted | Follow Group Members (Server) - Hosted |
| Query App Groups (Paged) | Retrieve a paginated list of all groups under a specified AppKey. | None | Query App Groups (Server) - Hosted |
| Query User's Groups (Paged) | Retrieve a paginated list of all groups a user has joined. | Query User's Groups (Client) - Hosted | Query User's Groups (Server) - Hosted |
| Import Group Hosting | For groups not created with hosting functionality, use this interface to set the owner and permissions before accessing hosting-related features. | None | Import Group Hosting (Server) - Hosted |
Group Chat Message Features
Group chat message features are similar to one-to-one chat functionality, sharing some APIs and configurations.
| Feature | Description | Client API | RC Server API |
|---|---|---|---|
| Send Message | Supports sending regular and media messages, such as text, images, GIFs, or custom messages. Includes mention functionality when sending messages. | Send Message | Send Group Message |
| Send Targeted Group Message | Supports sending regular and media messages to one or multiple specified group members, while other members won't receive the message. | Send Targeted Message | Send Targeted Group Message |
| Receive Message | Listen and receive messages in real-time, or receive offline messages when the client comes online. | Receive Message | N/A |
| Group Message Read Receipt | After sending a group message, if you need to check read status, first send a read receipt request, then obtain read data through recipients' responses. | Read Receipt | N/A |
| Offline Messages | Supports offline message storage with configurable duration (1-7 days). Default stores all group messages within 7 days, adjustable for duration and quantity. | Manage Offline Message Storage | API Not Provided |
| Offline Push Notifications | When offline, supports push notifications for new group messages. | Android Push Guide | API Not Provided |
| Recall Message | Allows recalling successfully sent messages. | Recall Message | Recall Message |
| Local Message Search | Messages stored locally (mobile) support keyword or user-based search within specified conversations. | Search Messages | API Not Provided |
| Get History Messages | Retrieve 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 save all conversation history as compressed log files. Use server API to retrieve or delete message logs for specified Apps. | API Not Provided | Get Message Logs |
| Insert Local Message | Insert messages into local database. Locally inserted messages aren't actually sent to server or recipients. | Insert Message | N/A |
| Delete Message | Supports deleting specific messages or all history messages from a conversation, both locally and on server. | Delete Message | Message Clear |
| Message Extensions | Add status identifiers (KV pairs) to original messages, providing interfaces for adding, deleting, and querying extension information. | Message Extensions | One-to-One/Group Message Extensions |
| Custom Message Types | Supports custom message types (both regular and media) when built-in types don't meet requirements. | 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):
| 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 generated by the SDK from the local database. | Get Conversation | Not provided |
| Get Unread Messages | Retrieve unread messages from specified conversations, enabling features like jumping to the first unread message or displaying all unread mentions. | Get Unread Messages | Not provided |
| Handle Unread Count | Get or clear the unread message count in conversations for UI display purposes. | Handle Unread Count | Not provided |
| Delete Conversation | Remove one or multiple conversations from the SDK-generated conversation list. | Delete Conversation | Not provided |
| Conversation Draft | Save draft content to a specified conversation. | Conversation Draft | Not provided |
| Typing Status | Configure whether to receive notifications for new messages in specified group conversations (default: enabled). | Typing Status | Not provided |
| Manage Conversation Tags | Create and manage tag information for categorizing conversations. Each user can create up to 20 tags. Tag data created by app users will sync with RC servers. | Manage Tag Information | Not provided |
| Apply Conversation Tags | Use tags to group conversations. | Apply Conversation Tags | Not provided |
| 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 Status | The SDK provides conversation status (pinned/DND) synchronization. By setting status listeners, devices can detect real-time status changes made on other devices. | Multi-device Sync | N/A |
| Multi-device Read Status | Actively synchronize conversation read status across multiple devices under the same user account. | Multi-device Read Sync | N/A |
Differences from Chatrooms and Ultra Groups
Understand feature distinctions between business types through these documents: