文档导航
React Native
SDK 版本:  5.X

开发指导

更新时间:2024-02-23 PDF

欢迎使用融云即时通讯。本页面简单介绍了融云即时通讯架构、服务能力和 SDK 产品。

架构与服务

融云提供的即时通讯服务,不需要在 App 之外建立并行的用户体系,不用同步 App 下用户信息到融云,不影响 App 现有的系统架构与帐号体系,与现有业务体系能够实现完美融合。

融云的架构设计特点:

  • 无需改变现有 App 的架构,直接嵌入现有代码框架中;
  • 无需改变现有 App Server 的架构,独立部署一份用于用户授权的 Service 即可;
  • 专注于提供通讯能力,使用私有的二进制通信协议,消息轻量、有序、不丢消息;
  • 安全的身份认证和授权方式,无需担心 SDK 能力滥用(盗用身份的垃圾消息、垃圾群发)问题。

融云即时通讯产品支持单聊群聊超级群聊天室 多种业务形态,提供丰富的客户端和服务端接口,大部分能力支持开箱即用。

业务类型介绍

单聊(Private)业务即一对一聊天。普通群组(Group)业务类似微信的群组。超级群与聊天室业务均不设用户总数上限。超级群(UltraGroup)1 类似 Discord,提供了一种新的群组业务形态,在超级群中提供公有/私有频道、用户组等功能,适用于构建超级社区。聊天室(Chatroom)只有在线用户可接收消息,广泛适用于直播、社区、游戏、广场交友、兴趣讨论等场景。融云的 IMKit 为 Android/iOS/Web 平台的单聊、普通群组业务提供了开箱即用的 UI 组件,其他情况下可以使用 IMLib SDK 构建您的业务体验。

单聊、群组、超级群、聊天室的主要差异如下:

功能 单聊(Private) 普通群组(Group) 超级群(UltraGroup)1 聊天室(Chatroom)
场景类比 类似微信私聊 类似微信群组 类似 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 天离线消息缓存 不支持 不支持
消息本地搜索 支持 支持 支持 不支持
离线推送通知 支持 支持 支持,可调整推送频率 不支持

脚注:

  1. 超级群业务仅限 IM 尊享版使用。
  2. IMKit 已支持 Android/iOS/Web 端。
  3. 聊天室具有自动销毁机制。默认情况下,如果聊天室在指定时间内(默认 1 个小时)没有人说话,且没有人加入聊天室时,会把聊天室内所有成员踢出聊天室并销毁聊天室。您可以灵活调整聊天室的存活条件与存活时间。
  4. 可允许单个用户加入多个聊天室,参考知识库文档:开通单个用户加入多个聊天室
  5. 客户端不区分业务类型整体限制 5 条消息/秒,可付费上调。
  6. 此处为服务端 API 默认频率,可付费上调。详细限频信息参见 API 接口列表
  7. 聊天室消息量较大时,超出服务端消费上限的消息将被主动抛弃。您可通过用户白名单、消息白名单、自定义消息级别等服务,改变消息抛弃策略。如果用户在聊天室的用户白名单内,该用户所发送的消息在消息量大时也不会被抛弃。如需了解服务端消费上限与如何改变消息抛弃策略,可参见服务端文档消息优先级服务聊天室白名单服务
  8. 参考知识库文档:单聊、群聊、聊天室、超级群在融云端历史消息存储时间分别是多长?

前往融云产品文档 · 即时通讯 »

高级与扩展功能

IM 服务支持的高级与扩展功能,包括但不限于以下项目:

  • 用户管理:例如用户封禁、用户黑名单(拉黑)、用户白名单,群组及聊天室禁言、聊天室成员封禁等。
  • 在线状态订阅:将用户每一个终端在线、离线或登出后的状态,同步给应用开发者指定的服务器地址。
  • 多设备在线消息同步:同时支持桌面端、移动端、以及多个 Web 端之间的消息在线同步。
  • 全量消息路由:支持将单聊、群组、聊天室、超级群等的消息数据同步到应用开发者指定的服务器地址。
  • 内容审核:支持设置敏感词列表,过滤或替换消息中的敏感词。利用消息回调服务,可将消息先转发到应用开发者指定的服务器地址,由应用服务器判定是否可发送给目标接收者。
  • 推送服务:融云负责对接厂商推送平台,已覆盖小米、华为、荣耀、OPPO(适用于一加、realme)、vivo、魅族、FCM、APNs 手机系统级推送通道。支持标签推送、多种推送场景、推送统计、全量用户通知等特性。

部分功能需要在控制台开通服务后方可使用。部分为收费增值服务,详见即时通讯计费细则

客户端 SDK

融云即时通讯(IM)客户端 SDK 提供丰富的组件与接口,大部分能力支持开箱即用。配合 IM 服务端 API 接口,可满足丰富的业务特性要求。

在集成融云 SDK 之前,我们建议使用快速上手教程与示例项目进行评估。

如何选择 SDK

IMLib 与 IMKit 是融云 IM 服务提供的两款经典的客户端 SDK。客户端功能在不同平台间基本保持一致。

  • IMLib 是即时通讯能力库,封装了通信能力和会话、消息等对象。不含任何 UI 界面组件。

    IMLib 已支持绝大部分主流平台及框架,如 Android、iOS、Web、Flutter、React Native、Unity、微信小程序等。

  • IMKit 是即时通讯界面库,集成了会话界面,并且提供了丰富的自定义功能。

    IMKit 已支持 Android、iOS 与 Web(要求 Web 5.X 版本)。

您可以根据业务需求进行选择:

  • 基于 IMLib 开发应用,将融云即时通讯能力嵌入应用中,并自行开发产品的 UI 界面。
  • 基于 IMKit 开发应用,将 IMKit 提供的界面组件直接集成到产品中,自定义界面组件功能,节省开发时间。您还可以使用融云提供的独立功能插件扩展 IMKit 的功能。

前往融云产品文档 · 客户端 SDK 体系 · IMLib · IMKit »

平台兼容性

IM 客户端 SDK 支持主流移动操作平台,客户端功能在多端基本保持一致,支持多平台互通。以下数据基于 5.X 版本 SDK。
平台/框架 接口语种 支持架构 说明
Android Java armeabi-v7a、arm64-v8a、x86、x86-64 系统版本 4.4 及以上
iOS Objective-C 真机:arm64、armv7。模拟器: arm64(5.4.7+)、x86_64 系统版本 9.0 及以上
Web Javascript --- ---
Electron Javascript 详见下方 Electron 版本与架构支持 Electron 11.1.x、14.0.0、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 版本 平台 支持架构 备注
    Electron 11.1.x Windows ia32 (x86) win32-ia32
    Electron 11.1.x Linux x64 linux-x64
    Electron 11.1.x Linux arm64 linux-arm64
    Electron 11.1.x Mac x64 darwin-x64
    Electron 14.0.0 Windows ia32 (x86) win32-ia32
    Electron 14.0.0 Mac x64 darwin-x64
    Electron 16.0.x Windows ia32 (x86) win32-ia32
    Electron 16.0.x Mac x64 darwin-x64
    Electron 20.0.x Windows ia32 (x86) win32-ia32
    Electron 20.0.x Mac x64 darwin-x64
    Electron 20.0.x Mac arm64 darwin-arm64

版本支持

IM 客户端 SDK 针对各平台/框架提供的最新版本如下(--- 表示暂未支持):

SDK/平台 Android iOS Web Electron Flutter React Native Unity uni-app 小程序
IMLib 5.6.x 5.6.x 5.9.x 5.9.x 5.4.x 5.2.x 5.1.x 5.4.x 5.9.x
IMKit 5.6.x 5.6.x 5.9.x --- --- --- --- --- ---
Global IM UIKit 1.0.x 1.0.x 1.0.x 1.0.x --- --- --- --- ---

即时通讯服务端

即时通讯服务端提供一套 API 接口与多种语言的开源 SDK。

服务端 API

您可以使用服务端 API 将融云服务集成到您的即时通讯服务体系中,构建您即时通讯 App 的后台服务系统。例如,向融云获取用户身份令牌 (Token),从 App 产品服务端向用户发送/撤回消息,或管理禁言用户列表。

前往融云即时通讯服务端 API 文档 · 集成必读 »

服务端 SDK

融云提供提供多个语言版本的开源服务端 SDK:

控制台

使用控制台,您可以对开发者账户和应用进行管理,开通高级服务,查看应用数据报表,和计费数据。

部分 IM 功能必须开通服务后方可使用。详见控制台服务管理页面。

即时通讯数据

如需在融云服务端长期存储单聊会话、群聊会话、聊天室会话的历史消息,您可以开通消息云存储服务。默认的长期存储时长与业务类型相关,可按需调整。该服务存储的数据仅供客户端获取历史消息时使用。

如果需要获取全部用户的消息历史,请开通 Server API 历史消息日志下载。开通后可使用服务端 API 获取最多三天的消息日志。

除此之外,您还可以开通全量消息路由服务,实时将消息同步到您的业务服务器。

您可以前往控制台的数据统计页面,查看即时通讯用户统计、业务统计、消息统计、业务健康检查等数据。开通相应服务后,还能获取如业务数据分析等数据。

融云不会利用客户的数据。同时融云提供完善的数据隐私保护策略。参见 SDK 隐私政策

文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈