即时通讯术语表
控制台
控制台使您能够创建新应用程序和管理现有应用程序,以使用融云提供的即时通讯、推送通知、实时音视频服务等。从控制台可获取您的应用程序在生产环境或开发环境的凭据(融云应用的 App Key、App Secret)。
App Key / Secret
App Key / Secret 相当于您的应用在融云的帐号和密码。其中 App Key 是融云 SDK 连接服务器所必需的标识。注意,在控制台创建的应用具有生产、开发 两个环境,每一个环境对应一套 App Key / Secret。
开发环境
方便开发者进行集成开发和测试的环境,注册用户上限为 100 个,与生产环境功能相同,两者间数据隔离,避免开发环境数据和线上生产环境数据互相冲突,提供独立的 App Key / Secret。融云后台创建应用后默认为开发环境。
生产环境
App 上线之后真正运营的商业环境。与开发环境间数据隔离,避免开发环境数据和线上生产环境数据互相冲突。提供独立的 App Key / Secret ,在正式上线前请务必由开发环境切换到生产环境。
Target ID
Target ID 用于标识会话,称为目标 ID 或会话 ID,一般用 targetId
参数表示。对应的消息发送方 ID 常用 senderUserId
表示。
- 针对群组会话、聊天室会话、超级群会话,融云直接使用群组 ID、聊天室 ID、超级群 ID 标识会话。因此,对于参与任意一个群聊会话(或聊天室会话、超级群会话)的所有用户,Target ID 是一致的。
- 针对单聊会话,融云使用单聊对端的用户 ID 作为标识本端单聊会话的 Target ID,因此,针对参与同一个单聊会话的两位用户,会话的 Target ID 是不一致的,针对本端登录用户,本端单聊会话的 Target ID 始终是单聊对端的用户 ID。因为单聊会话 Target ID 在会话参与者客户端不一致,在客户端通过「插入消息」接口在单聊会话中插入消息时可能容易发生误解。无论是插入本人发送还是本人接收的消息,请谨记
targetId
字段需传入单聊会话的 Target ID(单聊会话对端的用户 ID)。
例如用户 A 向用户 B 发送了一条消息,在不同会话类型中的 targetId
和 senderUserId
分别如下:
参与者 | 会话类型 | targetId | senderUserId |
---|---|---|---|
发送端(用户 A) | 单聊(二人会话) | 用户 B | 用户 A |
群聊 | 群组 ID | 用户 A | |
聊天室 | 聊天室 ID | 用户 A | |
超级群 | 超级群 ID | 用户 A | |
接收端(用户 B) | 单聊(二人会话) | 用户 A | 用户 B |
群聊 | 群组 ID | 用户 B | |
聊天室 | 聊天室 ID | 用户 B | |
超级群 | 超级群 ID | 用户 B |
Token
Token 即用户令牌,相当于 App 上当前用户连接融云的身份凭证。每个用户连接服务器都需要一个 Token,用户更换即需要更换 Token。每次初始化连接服务器时,都需要向服务器提交 Token。
单聊
指两个用户一对一进行聊天,两个用户间可以是好友也可以是陌生人,融云不对用户的关系进行维护管理,会话关系由融云负责建立并保持,当 App 在后台运行或者 App 进程被杀死后,有新消息时会收到推送通知。
群组
群组指两个以上用户一起进行聊天,群组成员信息由 App 提供并进行维系,融云只负责将消息传达给群组中的所有用户, App 在后台运行或者 App 进程被杀死后可以收到推送通知。每个群最大人数上限为 3000 人,App 内的群组数量没有限制。
超级群
超级群支持创建独立的频道(channel),超级群的消息数据(会话、消息、未读数)和群组成员支持按频道聚合。超级群提供了一种新的群组业务形态(请注意与普通群组或聊天室区分),不设置用户人数上限,允许用户在超级社群中建立社交关系、在海量信息中聚焦自己感兴趣的内容,帮助开发者打造高用户黏性的群体。
超级群业务针对在不同的平台与场景的需求,优化了消息请求、存储、分发、推送的逻辑,并且为客户端留下充裕的可定制空间。超级群组成员信息由 App 提供并进行维系。每个用户最多可加入 100 个超级群,App 内的超级群数量没有限制。
聊天室
聊天室成员不设用户上限,海量消息并发即时到达,用户退出聊天界面后即视为离 开聊天室,不会再接收到任何聊天室中消息,没有推送通知功能。会话关系由融云负责建立并保持连接,通过 SDK 相关接口,可以让用户加入或者退出聊天室。
系统会话
系统会话是一种特定的会话类型,运营人员使用设定好的系统帐号(非用户帐号,用户不可登录)通过服务端 API 向应用中指定用户或全部用户发送的系统消息、广播消息都会存储在系统会话中,系统会话主要为应用运营使用,终端在收到系统会话的消息后,只能查看不能进行回复。
会话频道
在一个超级群会话中下可创建独立的会话频道,同一超级群的成员可随意在不同群频道中发送消息,但不同频道间的消息相互隔离。单聊、群聊、超级群会话类型支持会话频道功能。
会话列表
指各种会话依照顺序先后排列的列表界面,其中列表中的每一个列表项称之为一条会话。排列的先后顺序会依赖于置顶、会话中最后一条消息的时间等因素,聊天室类型的会话不会进入到会话列表中。
聊天界面
指发送消息的发送及具体展示界面,在界面中支持消息内容和用户基本信息显示,包括用户名称、头像,提供文本、表情、语音、小视频、音视频通话等消息发送及自定义扩展输入区、输入框、消息内容展示等功能。
推送
推送(Push)是一种技术概念,是指从服务端实时发送远程通知到客户端。
iOS 设备使用苹果的 APNs(Apple Push Notification service)推送服务、Android 设备使用谷歌 FCM(Firebase Cloud Messaging)推送服务。在国内,由于谷歌服务不能使用,因此 Android 应用必须集成第三方厂商的推送服务,目前融云支持小米、华为、荣耀、OPPO、vivo、魅族推送厂商及融云自研的内置推送服务。
广播
广播(Broadcast)是一种业务概念,是通过后台管理界面或者调用服务端接口,向 App 中的所有用户发送一条消息。当用户离线时此条消息将自动转为推送对用户进行通知。
系统消息
系统消息(System Message)是一种业务概念,是指利用系统帐号(非用户帐号,用户不可登录)向用户发送的消息,既可以是通过调用广播接口发送给所有人的消息,也可以是加好友等单条通知消息。
在融云平台中,其实并不存在系统消息的概念,一般系统消息特指会话类型(ConversationType)为“系统(SYSTEM)”的会话中的消息。
离线消息
当对端用户不在线的时候,融云服务器会将收到的消息保留 7 天。7 天内对端客户端如果上线,融云会直接将消息发送到对端,如果 7 天内对端客户端都没有上线,融云服务器将抛弃掉过期的消息。单聊、群聊支持离线消息。聊天室不支持离线消息。
参见技术实践丨IM 消息数据存储结构设计中对离线消息与历史消息的详细说明。
消息补偿
是指用户在更换设备或卸载重新安装应用后,针对消息的一种补偿机制,使用户可以在新的设备上查看从当天零点开始,在其他终端上发送和接收过的消息,补偿功能需要开启多设备消息同步功能后才支持。
自定义消息
根据业务需要,由开发者创建的消息类型、消息内容结构,自定义消息的类型、消息结构需要确保多端一致,否则将出现无法互通的问题。
落地通知
落地通知是产生一条融云系统会话的消息抵达用户。用户在线时能即时收到消息 ;当用户离线时,融云消息会默认生成一条远程推送。
不落地通知
不落地通知本质上是一种远程通知方式,在客户端展现为一条远程推送通知(仅产生通知,不产生会话消息)。不落地通知始终通过推送通道下发数据,可使用融云自建推送通道或客户端已集成的第三方推送通道。其中 iOS 使用 APNs(Apple Push Notification service),Android 使用开发者在 SDK 中配置的推送服务,包括融云自研推送、小米、华为、魅族、OPPO、vivo、FCM。
消息扩展
针对已经发送的消息,在原消息的基础上增加扩展信息,扩展信息以 Key、Value 键值对的方式进行存储,单条消息最多可设置 300 个扩展信息。
全量消息路由
是指将应用下用户发送的所有消息,实时从融云 IM 服务端同步到客户的应用服务器地址,可通过此功能将全量消息数据存储到应用服务器。
服务端消息回调
通过自定义条件(消息发送者、接收者、会话类型、消息类型),将符合条件的消息回调至开发者应用服务器,不直接发送给目标用户,根据应用服务器返回的 响应结果决定是否下发。适用于对接自己或其他第三方内容审核服务的应用场景。
消息云存储
将用户发送的单聊、群聊、超级群、聊天室消息存储到融云服务器,方便用户在更换设备或删除本地消息后,通过服务端获取历史消息。单群聊消息服务端默认可保存 6 个月,超级群默认可保存 7 天、聊天室消息默认可保存 2 个月。您可在控制台延长各消息类型的云存储的时间。
在线状态订阅
将终端用户连接融云 SDK 的状态,实时同步到开发者的应用服务器。详细说明请参见在线状态订阅。
目前支持以下状态:
- 上线状态:表示 App 已经连接融云服务器。
- 离线状态:表示 App 已经断开与融云服务器的连接。
- 登出状态:表示 App 已经退出登录状态。
黑名单
单聊场景下限制不接收指定用户发送的任何消息,可将用户添加到黑名单中。
白名单
与“黑名单”相对的概念,只有互为白名单的用户才能相互发送消息,适用于强好友关系的应用场景。
封禁用户
禁止用户使用融云 IM 服务,封禁时间内用户无法连接融云 IM 服务器。
导航域名
用于获取 IM 服务连接访问的长连接地址和 SDK 中需要的基础配置信息,SDK 通过获取到的地址与 IM 服务端建立长连接。
应用标识
应用在手机设备中的唯一标识,iOS 平台为 Bundle Identifier
,Android 平台为 ApplicationId
,需要开发者在控制台进行设置,一个 App Key 下可以创建多个应用标识,同一 App Key 下不同应用标识中的用户可以相互发送消息。
Bundle Identifier
应用包名,是应用(application)在手机里的唯一标识符。需要在控制台应用标识中设置后,才能使用 iOS 推送服务。
ApplicationId
每个 Android 应用均有一个唯一的应用 ID(applicationId
),像 Java 软件包名称一样,例如 com.example.myapp
。此 ID 可以作为您的应用在设备上和 Google Play 商店中的唯一标识。
应用 ID一般配置在应用的 build.gradle
文件中,如果您没有在 build.gradle
中配置 applicationId
, 则 applicationId
默认为应用的包名。如果您有更多关于应用 ID 与包名的疑问,可参见 Android 官方文档。
您需要在控制台应用标识中设置应用 ID(applicationId
)后,才能使用 Android 推送服务。
IMLib
指不包含 UI 界面的 IM 基础通讯能力库,封装了通信能力和会话、消息等对象。引用到应用工程中后,需要开发者自己实现 UI 界面,相对较轻量,适用于对 UI 有较高订制需求的开发者。
IMKit
将融云 IM 基础通讯能力库在 UI 界面层的封装,包括即时通信产品中最复杂的会话列表、聊天窗口、消息内容展现、会话设置等功能组件,可以直接将以上界面集成到您的 App 产品中,省去大量的开发调试时间。同时支持自定义界面组件功能,可以针对自己界面需求自由设计开发。
Dev 版本
SDK 开发版本,版本主要为体现最新的功能和特性,不定期发布版本,可用于功能体验。