Private Channel Overview
The Ultra Group service supports creating private channels to meet business requirements where only specified users can communicate within the channel in community scenarios.
Before using the private channel feature, we recommend reading the Ultra Group Overview to understand how to use channels in your app's business context.
Known Limitations
The private channel feature currently has the following limitations:
Even if a user is not in the private channel member list, message sending will fail, but the message will still be stored in the local database. If a user not in the private channel member list attempts to send messages to the channel, the message cannot be successfully delivered to the server but will enter the local database and may generate a conversation.
Recommended solution: Maintain a private channel member list on your app's business side. If a user is not in the private channel member list, prevent them from sending messages to the private channel.
Understanding Private Channels
The client SDK does not provide APIs for creating private channels or changing channel types. Please use server APIs to implement these functions.
Ultra Group 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 in the channel's member list, and only these members can send/receive messages and receive channel status change notifications. Private channels can be converted to public channels at any time, and vice versa.
For example, an administrator creates a new channel in a community and defines it as a private channel. They then invite some community members to join the private channel. Only members who join the channel can view it and send/receive messages within it.
Channel type changes affect historical message retrieval permissions for that channel as follows:
- When a public channel is converted to a private channel: Only users in the current private channel member list can retrieve historical messages from that channel (including messages from when it was a public channel).
- When a private channel is converted to a public channel: All Ultra Group users can retrieve historical messages from that channel (including messages from when it was a private channel).
You can manage private channels through the following methods:
| Function Description | Client API | RC Server API |
|---|---|---|
| Create private channel | Not provided | Create Channel |
| Delete private channel | Not provided | Delete Channel |
| Query channel list | Not provided | Query Channel List |
| Change channel type | Not provided | Change Channel Type |
Understanding Private Channel Member Lists
The client SDK does not provide APIs for managing private channel member lists. You can call server APIs to query private channel member lists or add/remove Ultra Group members from the list.
When a channel is set as private, only users in its member list can send/receive messages and receive channel status notifications within the channel.
When a private channel is converted to public, the channel becomes accessible to all Ultra Group members. However, the member list data is not deleted. If the channel type is changed back to private, this member list will be reactivated.
You can also create a private channel member list for public channels. Once the public channel is converted to private, this list will take effect.
- When a channel is deleted, the server will clear its private channel member list.
- When an Ultra Group member leaves the group, the server automatically removes them from all private channel member lists.
You can manage private channel member lists through the following methods:
| Function Description | Client API | RC Server API |
|---|---|---|
| Add to private channel member list | Not provided | Add Private Channel Members |
| Remove from private channel member list | Not provided | Delete Private Channel Members |
| Query private channel member list | Not provided | Query Private Channel Members |