What's what
We tried to keep Chat SDK simple and name things as they are. Still, certain terms might not be clear at first sight or are PubNub-specific. When in doubt, refer to this simple list.
Term(s) | Description | Related docs |
---|---|---|
Channel | A room created for at least two people to have a conversation. Channel members can send messages, receive messages, and react to them. You can also forward messages to other channels, quote, or pin them to the channel, and much more. What you can do on a given channel depends on its type and the permissions you have (granted or revoked through Access Manager). | Channels |
Direct vs. group vs. public channel | Three types of channels you can create with the Chat SDK using three separate methods. The choice of a method/channel type depends on how many people you want to have in a given conversation. When you create a direct channel, you can invite only one person to a conversation when creating a channel, while group channels allow you to invite multiple members. Public channels, on the other hand, don't require invites. Anyone can join them as they are meant for larger audiences, like in virtual events. They also have certain limitations in place - you'll get errors when trying to implement such Chat SDK features as typing indicator, invites, or read receipts in public channels since these features are neither useful nor practical for large audiences. For channels created using the Kotlin SDK instead of Kotlin Chat SDK, whose type provided in channel metadata is different than the three mentioned Chat SDK types, the channel will get the type of unknown . | Direct, group, and public channels |
Connect vs. subscribe vs. join | Connecting to a channel lets you "watch" what is happening on that channel and see all new messages. This way, you become subscribed to this channel (or "present" on this channel) and receive all message-related events. To become a member of this channel, you must explicitly join it. In some cases, like a group channel, you can join a given channel only when invited by another member of this channel or its admin (depending on the channel permissions). | Watch, Invites, Membership |
Thread vs. channel | The term thread or a thread channel refers to a ThreadChannel object, which is simply a channel created for a message in the main channel to keep the conversation related to one topic in one place. You can think of a thread as a "subchannel" of the main channel. Thread channels' IDs start with the PUBNUB_INTERNAL_THREAD prefix. | Threads |
Message vs. thread message | A message that starts a thread is a regular Message object with the hasThread parameter set to true to distinguish it from other messages. All messages in a thread are called thread messages (ThreadMessage objects and their instances). | Threads |
Membership | An object that describes a relationship between a channel and a user and its status - whether a user joined a channel and became its member, or left the channel. | Membership |
Message action vs. message reaction | You can perform various actions on a message (such as deleting or editing). When you add or remove an emoji to/from a message, you react to it, so you add/remove a message reaction. PubNub Message Reactions API handles both actions and reactions. | Reactions |