Development Guide
Welcome to RongCloud Instant Messaging (IM). This page provides a brief introduction to the architecture, service capabilities, and SDK products of RongCloud IM.
Architecture and Services
RongCloud IM service does not require establishing a parallel user system outside your application (App), synchronizing user information to RongCloud, or affecting your App's existing system architecture and account system. It seamlessly integrates with your current business systems.
RongCloud's architecture design features:
-
No need to modify your existing App architecture—direct integration into your current code framework.
-
No need to adjust your existing application server architecture—only requires independent deployment of user authorization services.
-
Focused on communication capabilities, using a proprietary binary protocol that ensures lightweight, ordered, and lossless messaging.
-
Provides secure identity authentication and authorization mechanisms to prevent SDK abuse (such as identity theft, spam messaging, etc.).
RongCloud IM supports various business scenarios including [one-to-one chat], [group chat], [ultra group], [chatroom], offering rich client and server APIs with most features ready out-of-the-box.
Business Type Overview
-
One-to-one chat: Private messaging between two users.
-
Group chat: Similar to WeChat groups.
-
Ultra group1: No member limit, supports public/private channels, user groups, etc., ideal for building large communities like Discord.
-
Chatroom: No member limit, only online users receive messages, suitable for live streaming, communities, gaming, dating, interest discussions, etc.
The table below compares key differences between one-to-one chat, group chat, ultra group, and chatroom:
| Feature | One-to-One Chat | Group Chat | Ultra Group 1 | Chatroom |
|---|---|---|---|---|
| Scenario Analogy | Similar to WeChat private chat | Similar to WeChat groups | Similar to Discord | Chatroom |
| Characteristics/Advantages | Supports offline push and message history roaming | Supports offline push and message history roaming, suitable for interest groups, work groups, customer service, etc. | No member limit, supports message editing, public/private channels, user groups, etc. | No member limit, only online users receive messages, local history cleared upon exit |
| Service Activation | Not required | Not required | Required | Not required |
| UI Components | IMKit2 | IMKit2 | Not provided | Not provided |
| Creation Method | Not applicable | Server API | Server API | Server API, auto-created when clients join |
| Termination/Dissolution | Not applicable | Server API | Server API | Server API, supports auto-destruction3 |
| Member Limit | N/A | Max 3,000 members | Unlimited | Unlimited |
| User Join Restrictions | N/A | Unlimited | Max 100 groups per user, max 50 channels per group | Default: join 1 chatroom only (restriction can be disabled)4 |
| Pre-join Message Access | N/A | Disabled by default (configurable) | Disabled by default (configurable) | Clients receive up to 50 latest messages upon joining |
| Client Message Rate | 5 messages/sec per client5 | 5 messages/sec per client5 | 5 messages/sec per client5 | 5 messages/sec per client5 |
| Server Message Rate | 6,000 messages/minute6 | 20 messages/sec6 | 100 messages/sec6 | 100 messages/sec6 |
| Extensible Messages | Supported | Supported | Supported | Not supported |
| Message Editing | Not supported | Not supported | Supported | Not supported |
| Message Reliability | 100% reliable | 100% reliable | 100% reliable | Messages exceeding server consumption limit will be discarded7 |
| Local Message Storage | Supported (mobile/PC) | Supported (mobile/PC) | Supported (mobile/PC) | Not supported |
| Cloud Message Storage | Requires activation (6-36 months)8 | Requires activation (6-36 months)8 | Default 7 days (extendable to 3-36 months)8 | Requires activation (2-36 months)8 |
| Offline Message Cache | Default 7 days | Default 7 days | Not supported | Not supported |
| Local Message Search | Supported | Supported | Supported | Not supported |
| Offline Push Notifications | Supported | Supported | Supported (adjustable frequency) | Not supported |
Footnotes:
Client SDKs
The RC IM client SDKs provide rich components and interfaces, with most capabilities ready to use out of the box. When combined with the IM server APIs, they can meet your diverse business requirements.
Before integrating RC SDKs, we recommend evaluating them through quick start guides and sample projects.
How to Choose an SDK
IMLib SDK and IMKit SDK are RC IM service's two core client SDKs, with consistent functionality across different platforms.
-
IMLib: The instant messaging capability library. It encapsulates core communication capabilities along with conversation and message objects, without any UI components. IMLib already supports most mainstream platforms and frameworks, including Android, iOS, Web, Flutter, React Native, Unity, and WeChat Mini Programs.
-
IMKit: The instant messaging UI library. It integrates chat UIs and provides extensive customization features. IMKit currently supports Android, iOS, and Web (requires Web IMLib 5.x version).
You can flexibly choose based on your business needs:
-
If you need deep integration of IM core capabilities with fully customized UI, select the IMLib SDK. It offers maximum flexibility.
-
If you want rapid deployment with ready-to-use conversation UIs, choose the IMKit SDK. You can directly integrate it into your product, customize interface features through rich APIs, or extend its capabilities using official plugins - significantly reducing development cycles.
Platform Compatibility
The RC IM Client SDK supports mainstream platforms and frameworks, with consistent basic features across platforms and interoperability. The following table lists the platform support for version 5.X SDKs.
| Platform/Framework | Interface Language | Supported Architectures | System Requirements |
|---|---|---|---|
| Android | Java | armeabi-v7a, arm64-v8a, x86, x86-64 | Android 5.0 or later |
| iOS | Objective-C | Device: arm64, armv7 Simulator: arm64 (5.4.7+), x86_64 | iOS 9.0 or later |
| Web | JavaScript | --- | --- |
| Electron | JavaScript | See Electron Version and Architecture Support | Electron 11.1.x, 14.0.x, 16.0.x, or 20.0.x |
| Flutter | Dart | --- | Flutter 2.0.0 or later |
| React Native | TypeScript | --- | React Native 0.60 or later |
| uni-app | JavaScript | --- | uni-app 2.8.1 or later |
| Unity | C# | armeabi-v7a, arm64-v8a | --- |
-
ElectronVersion and Architecture SupportThe Electron framework is supported through the Electron module of the Web SDK (see Electron Integration Solution), enabling desktop application development for Windows, Linux, and macOS platforms. The following table lists supported
Electronversions, desktop operating systems, and CPU architectures:Electron Version Platform Supported Architectures Notes 11.1.x Windows ia32 (x86) win32-ia32 11.1.x Linux x64 linux-x64 11.1.x Linux arm64 linux-arm64 11.1.x Mac x64 darwin-x64 14.0.0 Windows ia32 (x86) win32-ia32 14.0.0 Mac x64 darwin-x64 16.0.x Windows ia32 (x86) win32-ia32 16.0.x Mac x64 darwin-x64 20.0.x Windows ia32 (x86) win32-ia32 20.0.x Mac x64 darwin-x64 20.0.x Mac arm64 darwin-arm64
Version Support
The latest versions of the IM client SDKs for each platform/framework are as follows (--- indicates not currently supported):
| SDK/Platform | Android | iOS | Web | Electron | Flutter | React Native | Unity | uni-app | Mini Program |
|---|---|---|---|---|---|---|---|---|---|
| IMLib | 5.10.x | 5.10.x | 5.9.x | 5.9.x | 5.6.x | 5.2.x | 5.1.x | 5.4.x | 5.9.x |
| IMKit | 5.10.x | 5.10.x | 5.9.x | --- | --- | --- | --- | --- | --- |
| Global IM UIKit | 1.0.x | 1.0.x | 1.0.x | 1.0.x | --- | --- | --- | --- | --- |
SDK Size Impact After Integration
- Android app size impact after integrating RC Chat SDK
- iOS app size impact after integrating RC Chat SDK
IM Server
The IM server provides a set of API interfaces and open-source SDKs in multiple languages.
Server API
You can use the server API to integrate RC services into your instant messaging service system and build the backend service system for your IM application. For example, obtaining user identity tokens (Token) from RC, sending/recalling messages to users from your application server, or managing banned user lists.
Visit the RC IM Server API Documentation.
Server SDKs
RC provides open-source server SDKs in multiple languages:
Console
Through the RC Console, you can manage developer accounts and applications, enable premium services, view data reports, and access billing information.
Some IM features require service activation before use. For details, see the Service Management page in the Console.
Data & Analytics
RC provides various tools for data storage, retrieval, and statistical analysis.
-
Message Storage & Retrieval:
- Cloud Storage for One-to-One and Group Messages: Enabled by default. Historical messages for one-to-one chats and group chats are stored on RC's server for client-side historical message retrieval. Storage duration can be adjusted according to your business needs.
- Cloud Storage for Chatroom Messages: To store historical messages for chatrooms long-term on RC's server, please submit a ticket to enable this service. Once enabled, chatroom history messages are stored in the cloud by default for 2 months.
-
Historical Message Download: To obtain all users' historical messages, enable [Server API Historical Message Log Download]. After enabling, you can retrieve message logs from the last three days via server API.
-
Real-time Message Routing: You may also enable Post-messaging callback to synchronize messages to your business server in real-time for data backup or custom processing.
-
Data Privacy: RC is committed to protecting your data security and never utilizes customer data. We provide comprehensive data privacy protection policies. For details, see SDK Privacy Policy.