Overview
Sendbird's SDKs and API provide two basic types of channels: open channel and group channel. Each type of channel is designed to support a wide variety of use cases that your business requires. This page explains the differences and characteristics of the two types.
Note: By default, the Allow creating open channels and Allow creating group channels options are turned on which means that open channels and group channels can be created by any user with Sendbird Chat SDK. This may grant access to unwanted data or operations, leading to potential security concerns. To manage your access control settings, you can turn on or off each option in Settings > Application > Security > Access control list on Sendbird Dashboard.
Open channel
An open channel is a public chat that can handle millions of online users. In open channels, anyone can easily participate without permission.
- Ephemeral: Messages in an ephemeral open channel are not saved in Sendbird's database. This means that old messages pushed out by new ones can't be retrieved as they are one-time data. On the other hand, messages in a persistent open channel are permanently stored in the database, which is the default.
Group channel
A group channel is a chat that allows close interactions among a limited number of users. In order to join a group channel, an invitation from a channel member is required by default. Depending on how you implement the joining process in your application, a user who is invited to a group channel can accept or decline the invitation. However, various properties can be leveraged to design different types of group channels that suit your use cases, such as Twitter-style 1-to-1 direct messaging, WhatsApp-style group chat, and more.
-
Public vs. Private: A public group channel can be joined by any user without an invitation. Users can freely join a channel if they want to. On the other hand, a private group channel only accepts invited users by default.
-
Distinct: The
distinct
option (Default: false) determines whether to create a completely new channel when someone starts a channel with the same member combination that already exists. By default, if there is already a channel with the same group of members, it will retrieve the existing channel and its previous chat history. -
Ephemeral: Messages in an ephemeral group channel are not saved in Sendbird's database. This means that old messages pushed out by new ones can't be retrieved as they are one-time data. On the other hand, messages in a persistent group channel are permanently stored in the database, which is the default.
Open channel vs. Group channel
The optimal use cases for each channel type can vary because different channels support different features. The following tables compare open channels and group channels in terms of possible use cases and supported features.
Use cases
Choose which channel type to use based on key factors such as the duration of a chat and the number of users participating in it. The following table lists possible use cases for each channel type.
Type | Used for |
---|---|
Open channel | - Short-lived live events, such as concerts and streaming. |
Group channel | - Private 1-to-1 conversations, such as clinical consultations and Instagram-style Direct Messages. |
Features
The following table compares the difference among two types of channels.
Open channel | Group channel | |
---|---|---|
Maximum number in a channel | Up to millions of participants | 100 members |
Accessible by | Anyone within the application | Invited users only if private or anyone if public |
Ephemeral messaging | ||
Online presence | N/A | N/A |
Last message | N/A | Supported |
UIKit | N/A | N/A |
N/A | ||
Ban users | N/A | |
Mute users | N/A | |
Freeze channels | N/A | N/A |
Delivery receipts | N/A | N/A |
Read receipts | N/A | |
Unread counts | N/A | |
Typing indicators | N/A | N/A |
Mention others in message | ||
Mention counts | N/A | N/A |
Reactions | N/A | N/A |
Spam flood protection | Supported | Supported |
Supported | Supported | |
Smart throttling | Supported (Default: true) | Supported (Default: false) |
Push notifications | N/A | Supported |
Get a channel with its participant list or member list | N/A | Supported |
Pagination for participant list or member list | ||
Order of channel list | - Chronological | - Chronological |