Open channel overview
Open channels provide a high-concurrency messaging environment with no upper limit on participants. They are ideal for live streaming, communities, gaming, social discovery, and interest-based discussions.
- There is no limit on the number of open channels per App Key, and no limit on participant count per channel.
- Open channels have an auto-destroy mechanism. By default, an open channel is destroyed after 1 hour of inactivity (no participants joining/leaving and no new messages). This timeout can be extended or configured for scheduled destruction. See the Server API documentation on Open Channel Destruction.
- Open channels have an automatic participant removal mechanism for offline users. See [Leaving an Open Channel] for details.
- Local messages are deleted when a user leaves an open channel.
- Open channels do not support offline push notifications. Only online participants can receive messages.
Service configuration
The client SDK supports open channels by default — no activation required.
Some basic features and premium services can be enabled and configured on the Console IM service pages.
Open channel API reference
Open channel connections are managed by Nexconn. The SDK provides APIs for joining, leaving, and partial channel management. Additional management features require the Server API.
| Feature | Description | Client API | Server API |
|---|---|---|---|
| Create & destroy | Create or destroy an open channel. The client SDK does not provide create or destroy APIs. | N/A | Create Channel, Destroy Channel |
| Join & leave | Join an existing open channel or leave one. | Join Channel, Leave Channel | N/A |
| Query channel info | Query channel details (ID, name, creation time) and participant info (user ID, join time, up to 500). | Get Channel Info (Client) | Get Channel Info (Server) |
| Keep-alive | Add channels to the keep-alive list to prevent automatic destruction. | N/A | Server API route pending confirmation |
| Metadata management | Set custom key-value attributes in a channel (e.g., seat status in live audio, game roles). | Open Channel Meta Data | Metadata Management Overview |
| Ban/unban participants | Ban users from specific channels. Banned users are kicked and cannot rejoin during the ban period. | N/A | Ban Participant |
| Participant allowlist | Protect specific users from being kicked or having their messages dropped during high traffic. | N/A | Participant Allowlist |
| Send messages | Send messages in an open channel. | Send Message (Client) | Send Message (Server) |
| Recall messages | Recall a sent message. | Recall Message (Client) | Recall Message (Server) |
| Get history | Retrieve open channel message history. | Get History (Client) | Documentation pending |
| Low-priority messages | Mark specific message types as low priority. During high server load, low-priority messages are dropped first. | N/A | Message Priority Service |
| Message allowlist | Protect specific message types from being dropped during high traffic. | N/A | Message Allowlist Service |
| Mute participant | Mute specific participants in a channel. Muted users can view but not send messages. | N/A | Mute Participant |
| Freeze channel | Freeze an entire channel. No participant can send messages. | N/A | Freeze Channel |
| Allowed Senders List | Allow specific participants to send messages even when the channel is frozen. | N/A | Freeze Channel |
| Global mute | Mute a user across all open channels in the app. | N/A | Global Mute |
Comparison with group and community channels
For differences between channel types, see: