Chat is a powerful way to boost engagement in your app.
Chat allows end-users to communicate with each other in realtime. All communication is directed to channels, and pushed to participating users in realtime via RTT. A rolling history of chat messages is maintained per channel. These settings configure the maximum sizes of chat messages and the size of history to be maintained. Pro-tip: set limits as low as possible to minimize usage costs.
This feature requires RTT, which can be enabled via Advanced Settings. Profanity filtering requires WebPurify integration, which can be configured on the Manage Integrations page.
Chat messages are directed to channels.
Channels have two important relationships with users:
- members (subscribers) - persistent members of the channel. i.e. those who can access messages, and are allowed to "listen" to real-time chat.
- listeners - online members who are listening right now! Chat messages are "pushed" only to active listeners
There are different types of channels (global or group) - determined by how membership and listeners are managed.
Channels can be active or inactive
- active channels have active listeners and/or history
- inactive channels are channels without history that don't have any active listeners either.
Users can choose to listen to an inactive channel. Once they do, the channel becomes active.
Real-time chat events are sent to online users (i.e. from API Server → EventServer → Clients) via one of two mechanisms (i.e. CHAT_BROADCAST or CHAT_DIRECT).
After enabling Chat via the checkbox
you will be able to configure the following:
Chat message size: This is the max byte size for a given message. 256 is a common value for each chat message.
Max history per channel: Number of chat messages to store so someone logging in the middle of the conversation can view the history of recent messages for context.
Channel inactivity timeout (days): Number of days without new messages before the channel history is cleared. Values as low as a week or even lower should be fine.
Replace profanity with: If you have a webPurify account integrated, enabling this will block inappropriate words from polluting your channel.
Disallow Emails, phone numbers and urls: These are commonly inappropriate forms of content you are likely to want to remove