开发指导
欢迎使用融云即时通讯(IM)。本页面简要介绍融云 IM 的架构、服务能力和 SDK 产品。
架构与服务
融云 IM 服务无需在您的应用(App)之外建立并行的用户体系,无需同步 App 的用户信息到融云,也不会影响 App 现有的系统架构与账号体系,可与现有业务系统无缝融合。
融云架构设计具备以下特点:
- 无需更改现有 App 架构,可直接集成到现有代码框架中。
- 无需调整现有 App Server 架构,仅需独立部署用于用户授权的服务。
- 专注于通讯能力,采用私有二进制通信协议,消息轻量、有序且不丢消息。
- 提供安全的身份认证和授权机制,防止 SDK 能力被滥用(如身份盗用、垃圾消息群发等)。
融云 IM 支持单聊、群聊、超级群、聊天室等多种业务形态,提供丰富的客户端和服务端 API,大部分能力开箱即用。
业务类型简介
- 单聊(One-to-one chat):一对一聊天。
- 群聊(Group chat):类似微信群组。
- 超级群(Ultra group)1:成员数量无限制,支持公有/私有频道、用户组等,适合构建大型社区,类似 Discord。
- 聊天室(Chatroom):成员数量无限制,仅在线用户可接收消息,适用于直播、社区、游戏、交友、兴趣讨论等场景。
下表对比了单聊、群聊、超级群、聊天室的主要差异:
功能 | 单聊 | 群聊 | 超级群 1 | 聊天室 |
---|---|---|---|---|
场景类比 | 类似微信私聊 | 类似微信群组 | 类似 Discord | 聊天室 |
特性/优势 | 支持离线推送和历史消息漫游 | 支持离线推送和历史消息漫游,适用于兴趣群、办公群、客服等 | 不限成员数,支持消息修改、公有/私有频道、用户组等 | 不限成员数,仅在线用户可接收消息,退出即清除本地历史消息 |
开通服务 | 不需要 | 不需要 | 需要 | 不需要 |
UI 组件 | IMKit2 | IMKit2 | 不提供 | 不提供 |
创建方式 | 无需创建 | 服务端 API | 服务端 API | 服务端 API,客户端加入时可自动创建 |
销毁/解散方式 | 不适用 | 服务端 API | 服务端 API | 服务端 API,支持自动销毁3 |
成员数量限制 | 不适用 | 群成员上限 3000 | 不限 | 不限 |
用户加入限制 | 不适用 | 不限 | 最多加入 100 个群,每群最多 50 个频道 | 默认仅可加入 1 个聊天室,可关闭限制4 |
获取加入前的消息 | 不适用 | 默认不允许,可关闭限制 | 默认不允许,可关闭限制 | 客户端加入聊天室可获取最新消息,最多 50 条 |
客户端发消息频率 | 每个客户端 5 条/秒5 | 每个客户端 5 条/秒5 | 每个客户端 5 条/秒5 | 每个客户端 5 条/秒5 |
服务端发消息频率 | 6000 条/分钟6 | 20 条/秒6 | 100 条/秒6 | 100 条/秒6 |
扩展消息 | 支持 | 支持 | 支持 | 不支持 |
修改消息 | 不支持 | 不支持 | 支持 | 不支持 |
消息可靠性 | 100% 可靠 | 100% 可靠 | 100% 可靠 | 超出服务端消费上限的消息将被丢弃7 |
消息本地存储 | 移动端、PC 端支持 | 移动端、PC 端支持 | 移动端、PC 端支持 | 不支持 |
消息云端存储 | 需开通,可存储 6-36 个月8 | 需开通,可存储 6-36 个月8 | 默认存储 7 天,支持 3-36 个月存储8 | 需开通,可存储 2-36 个月8 |
离线缓存消息 | 默认 7 天 | 默认 7 天 | 不支持 | 不支持 |
消息本地搜索 | 支持 | 支持 | 支持 | 不支持 |
离线推送通知 | 支持 | 支持 | 支持,可调整推送频率 | 不支持 |
脚注:
- 超级群业务仅限 IM 尊享版使用。
- IMKit 已支持 Android、iOS 和 Web 端。
- 聊天室支持自动销毁,默认 1 小时无人发言且无人加入时自动移除所有成员并销毁聊天室。您可自定义销毁条件和时间。
- 可允许单个用户加入多个聊天室,详见开通单个用户加入多个聊天室。
- 客户端不区分业务类型整体限制 5 条消息/秒。
- 服务端 API 默认限频,可付费上调,详见 API 接口列表。
- 聊天室消息量过大时,超出消费上限的消息将被主动丢弃。您可通过用户白名单、消息白名单、消息优先级等服务调整消息丢弃策略,详见消息优先级服务、聊天室白名单服务。
- 各业务历史消息存储时长,详见历史消息存储时长。
高级与扩展功能
融云 IM 支持多项高级与扩展功能,包括:
- 用户管理:如用户封禁、用户黑名单、用户白名单、群组及聊天室禁言、聊天室成员封禁等。
- 在线状态订阅:同步用户各终端在线、离线、登出状态到您的应用服务器。
- 多设备消息同步:支持桌面端、移动端、和多个 Web 端之间的消息在线同步。
- 全量消息路由:可将单聊、群聊、聊天室、超级群等消息同步到您的应用服务器。
- 内容审核:支持设置敏感词列表, 过滤或替换消息中的敏感词。消息回调服务可将消息先转发到您指定的服务器地址,由应用服务器决定是否可发送给目标接收者。
- 推送服务:已对接主流厂商推送平台,目前覆盖了小米、华为、荣耀、OPPO(适用于一加、realme)、vivo、魅族、FCM、APNs 手机系统级推送通道。支持多种推送场景、标签推送、推送统计、全量用户通知等。
客户端 SDK
融云 IM 客户端 SDK 提供丰富的组件与接口,大部分能力开箱即用。配合 IM 服务端 API,可满足您丰富的业务需求。
在集成融云 SDK 前,建议您通过快速上手教程与示例项目进行评估。
如何选择 SDK
IMLib SDK 与 IMKit SDK 是融云 IM 服务提供的两款核心客户端 SDK,其功能在不同平台间基本保持一致。
-
IMLib:即时通讯能力库。它封装了通信核心能力和会话、消息等对象,不含任何 UI 组件。 IMLib 已支持绝大部分主流平台及框架,如 Android、iOS、Web、Flutter、React Native、Unity、微信小程序等。
-
IMKit:即时通讯界面库。它集成了会话界面(UI),并提供丰富的自定义功能。 IMKit 已支持 Android、iOS 与 Web(要求使用 Web IMLib 5.x 版本)。
您可以根据自身业务需求灵活选择:
- 如果您需要将 IM 核心能力深度集成,并完全自定义 UI,请选择 IMLib SDK。它能给予您最 大的灵活性。
- 如果您希望快速上线,并直接使用成熟的会话 UI,请选择 IMKit SDK。您可以将其直接集成到您的产品中,并通过丰富的 API 自定义界面功能,或使用官方插件扩展其能力,从而大幅缩短开发周期。
平台兼容性
融云 IM 客户端 SDK 支持主流平台与框架,各平台功能保持基本一致且可互通。下表列出了各平台对 5.X 版本 SDK 的支持情况。
平台/框架 | 接口语言 | 支持架构 | 系统要求 |
---|---|---|---|
Android | Java | armeabi-v7a、arm64-v8a、x86、x86-64 | Android 5.0 或更高版本 |
iOS | Objective-C | 真机:arm64、armv7 模拟器:arm64(5.4.7+)、x86_64 | iOS 9.0 或更高版本 |
Web | Javascript | --- | --- |
Electron | Javascript | 详见Electron 版本与架构支持 | Electron 11.1.x、14.0.x、16.0.x 或 20.0.x |
Flutter | dart | --- | Flutter 2.0.0 或更高版本 |
React Native | Typescript | --- | React Native 0.60 或更高版本 |
uni-app | Javascript | --- | uni-app 2.8.1 或更高版本 |
Unity | C# | armeabi-v7a、arm64-v8a | --- |
-
Electron
版本与架构支持Electron 框架需通过 Web 端 SDK 的 Electron 模块(详见 Electron 集成方案)获得支持,可用于开发运行在 Windows、Linux、macOS 平台的桌面应用。下表列出了已支持的
Electron
版本、桌面操作系统及 CPU 架构:Electron 版本 平台 支持架构 备注 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
版本支持
IM 客户端 SDK 针对各平台/框架提供的最新版本如下(---
表示暂未支持):
SDK/平台 | Android | iOS | Web | Electron | Flutter | React Native | Unity | uni-app | 小程序 |
---|---|---|---|---|---|---|---|---|---|
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 后包体积增量
IM 服务端
IM 服务端提供一套 API 接口与多种语言的开源 SDK。
服务端 API
您可以使用服务端 API 将融云服务集成到您的即时通讯服务体系中,构建您即时通讯 App 的后台服务系统。例如,向融云获取用户身份令牌 (Token),从 App 产品服务端向用户发送/撤回消息,或管理禁言用户列表。
前往融云即时通讯服务端 API 文档。
服务端 SDK
融云提供提供多个语言版本的开源服务端 SDK:
- server-sdk-java (GitHub) · (Gitee)
- server-sdk-php (GitHub) · (Gitee)
- server-sdk-go (GitHub) · (Gitee)
控制台
通过融云控制台,您可以管理开发者账户和应用、开通高级服务、查看数据报表及计费信息。
部分 IM 功能必须开通服务后方可使用。详见控制台服务管理页面。
数据与统计
融云为您提供多种数据存储、获取与统计分析的工具。
-
消息存储与拉取:如需在融云服务端长期存储单聊、群聊、聊天室的历史消息,您可以开通消息云存储服务。该服务存储的数据主要用于客户端拉取历史消息。存储时长可按您业务的需求调整。
-
历史消息下载:如果需要获取全部用户的历史消息,请开通[服务端 API 历史消息日志下载]。开通后,您可通过服务端 API 获取最近三天的消息日志。
-
实时消息路由:您也可以开通全量消息路由服务,将消息实时同步到您的业务服务器,以便进行数据备份或自定义处理。
-
数据统计:您可通过控制台的数据统计页面,查看用户、业务、消息、业务健康检查等统计数据。开通相应服务后,您还能获取业务数据分析。
-
数据隐私:融云承诺保护您的数据安全,绝不利用客户数据。我们提供完善的数据隐私保护策略,详见 SDK 隐私政策。