Ultra Group Overview
- The client IMLib SDK has supported Ultra Groups since SDK version 5.2.0. IMKit currently does not support Ultra Group functionality.
- Unless otherwise specified, most Ultra Group Android client interfaces are located in ChannelClient.
RC Ultra Groups (UltraGroup) provide a new form of group communication. Ultra Groups have no member limit, allowing users to establish social relationships within super communities and focus on content of interest amidst massive information flow, helping developers build highly engaging communities. Ultra Group members can join up to 100 Ultra Groups, with all channels under the same Ultra Group sharing the same member relationships. There is no limit to the number of Ultra Groups within an App.
The conversation type (ConversationType) for Ultra Group services is ConversationType.ULTRA_GROUP, where targetId represents the Ultra Group ID and channelId represents the Ultra Group channel ID. Unless otherwise specified, most Ultra Group Android client interfaces are located in ChannelClient.
Enabling the Service
The Ultra Group feature is available in the development environment (dev). In production environments, this feature is supported for Chat Pro Plan and is not supported for Chat Starter Plan.
How to Use Channels
Ultra Groups support creating independent channels within group conversations (specified by channelId on the client side, corresponding to busChannel on the server side). Ultra Group conversations, messages, unread counts, and member data can be aggregated by channel, with messages being independent across channels.
Channels are categorized into public channels and private channels. Public channels are open to all Ultra Group members (no joining required). All members of the Ultra Group will receive messages from public channels. Private channels are only accessible to users on the channel's member list. For detailed information about private channels, see Ultra Group Private Channel Overview.
Ultra Group services provide a default channel with the ID RCDefault. The RCDefault channel is open to all Ultra Group members and cannot be converted to a private channel.
For App business scenarios, if you only need to implement group chat-like functionality, you can leverage the unlimited member feature of Ultra Groups to create super large groups with more than 3,000 members. In this case, all messages can be sent and received in the RCDefault default channel. It is recommended to specify the channel ID as RCDefault when calling client or server APIs.
If you need to implement Discord-like functionality, building sub-communities through Ultra Group channels, it is recommended to use only channels you create yourself to implement your business features. The behavior of the default channel (RCDefault) differs from that of custom channels, and using only custom channels can avoid limitations in implementing App business logic.
If your App/environment enabled Ultra Group services before October 13, 2022, your Ultra Group service does not include the RCDefault channel. When calling client or server APIs without specifying a channel ID, the action will generally only affect messages not belonging to any channel. Specific behaviors should be referenced in the respective feature documentation. RC supports adjusting services to the latest behavior. This adjustment will affect multiple functionalities, including message sending/receiving, conversation retrieval, history message clearing, and muting on both client and server sides. If needed, please submit a ticket for detailed solutions.
Client UI Framework Reference Design
The Ultra Group product does not currently provide UI components. You can refer to the following UI framework design to understand the design approach for Ultra Group Apps.
- The red box on the left side of the figure below represents the Ultra Group list, which shows the current logged-in user's Ultra Groups. The plus (+) button at the bottom of the red box represents creating a new Ultra Group.
- The green box above represents the Ultra Group channel (Channel) list. Each channel in an Ultra Group is specified by a channel ID (
channelId).
Ultra Group Management Interfaces
Ultra Groups do not support group data hosting capabilities; all Ultra Group business logic must be implemented on the App server.
For client developers, basic management operations such as creating groups and channels only require interaction with the App server. The App server needs to call the corresponding RC server API (Server API) interfaces for operations like creating Ultra Groups and channels.
The table below lists the basic Ultra Group management interfaces provided by RC.
The Server API also provides additional management interfaces such as Ultra Group-wide muting and user muting. For details, see the RC Server API Ultra Group Documentation.
| Function Category | Description | Client API | RC Server API |
|---|---|---|---|
| Create/Dismiss Ultra Group | Provide the creator's user ID, Ultra Group ID, and group name to request group creation from RC. Dismissing an Ultra Group removes all member relationships. | Not provided | Create Ultra Group, Dismiss Ultra Group |
| Join/Leave Ultra Group | After joining an Ultra Group, members can view new messages by default. Leaving the group stops receiving new messages. | Not provided | Join Ultra Group, Leave Ultra Group |
| Update Ultra Group Info | Modify Ultra Group information used in RC push services. | Not provided | Refresh Ultra Group Info |
| Create/Delete Channel | Create independent communication channels within Ultra Group conversations. Deleting a channel prevents message sending in that channel. | Not provided | Create Channel, Delete Channel |
| Query Channel List | After joining an Ultra Group, members can view new messages by default. Leaving the group stops receiving new messages. | Not provided | Get Channel List |
| Change Channel Type | Ultra Group channels can be switched between public and private types at any time. | Not provided | Change Channel Type |
| Add/Remove Private Channel Members | Add or remove Ultra Group members from the specified private channel's member list. This list is active when the channel type is private. | Not provided | Add Private Channel Users, Delete Private Channel Users |