Channel types
Sendbird's SDKs and API provide two basic types of channels. Each type is designed and implemented to support a wide variety of use cases that your business requires. This page presents the differences and characteristics of the two types.
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 private chat. A user may join the chat only through an invitation by another user who is already a member of the chatroom.
- Distinct: The
distinct
option determines whether to resume an old channel or to create an entirely new one when someone attempts to open a new channel with a pre-existing member combination. If there is a group channel with those members, the attempt will re-start the existing channel that has their chat history. This is similar to Twitter-style 1-on-1 direct messaging and more. The default value is false. - 1-on-1 messaging: 1-on-1 messaging is a private channel between two users. By changing the value of the channel's
distinct
property, you can reuse the channel with the same members like Twitter-style 1-on-1 direct messaging. - Group messaging: Group messaging is a private channel among multiple users. You can invite up to hundreds of members into a group channel like WhatsApp-style closed group chat.
Open channel vs. Group channel
Open channel | Group channel | |
---|---|---|
Maximum number in a channel | Up to millions of participants | 100 members |
Access control | Public | Invitation required |
Class name | OpenChannel | GroupChannel |
Number of members | Over a few thousand | Less than a few hundred |
How to create | Sendbird Dashboard / Platform API / Client SDK | Client SDK / Platform API |
Operators | Supported | N/A |
Ban user | Supported | N/A |
Mute user | Supported | N/A |
Freeze channel | Supported | N/A |
Push notifications | N/A | Supported |
Unread counts | N/A | Supported |
Read receipts | N/A | Supported |
Typing indicators | N/A | Supported |