AIMPaaS的客户端SDK支持目前主流的操作系统,采用多账户模型支持同时登录和操作多个账户,内置同步协议,支持本地存储和本地搜索。本文介绍客户端SDK(AIMSDK)的特性和能力。

多系统支持

AIMSDK支持目前主流的操作系统,包括移动端的Android、iOS,以及桌面端的Windows、Mac,并提供相应的Java、OC、C++接口,方便开发者集成。

操作系统 支持的系统版本 开发语言
Android
  • Android:4.1+
  • API level:≥16
  • arm:v7i、v7a、v8a
  • NDK:18b
Java
iOS
  • iOS:≥8.0
  • Xcode:11.2.1
Objective-C
Windows
  • Window:XP +
  • Visual Studio:2017
C++
MacOS OS X:≥10.12 Objective-C

AIMSDK内核使用C++语言进行开发,确保了多端一致,以及极致的性能体验。

多账户模型

  • AIMSDK支持同时登录和操作多个账户,底层共享一个长连接,这个长连接负责所有SDK服务所需要的网络请求,多个账户使用多个虚拟连接隔离。
  • DPSEngine用于管理所有用户实例。
  • DPSManager用于管理用户相关的基础服务。
  • 每个DPSManager对应一个账户,在创建DPSManager时通过参数与用户进行绑定,最多支持10个账号同时登录。
  • AIMModule用于管理会话、消息、搜索服务等,通过AIMModule获取对应用户的对应服务,用于收发消息等操作。
多账户模型

同步及本地存储

  • AIMSDK内置同步协议,登录完成后,SDK自动从服务端同步最近活跃的会话及每条会话最后一条新消息,加快端侧首屏会话列表展示。
  • 在本设备创建、收发的会话及消息同时存入本地数据库,便于下次展示时从本地获取。同步协议自动从服务端补齐本地缺失的数据及数据更新,确保本地数据的正确性。无需服务端请求,以减少网络带宽及降低服务端压力。
  • 应用客户端无需额外存储会话和消息信息,也无需主动从服务端同步信息,通过AIMSDK提供的接口获取会话和消息可确保本地数据与服务端同步,以及多端数据一致。
同步及本地存储

登录方式

AIMSDK除了正常登录使用,还为您提供了离线使用和免登使用。更多详情,请参见账号登录

消息收发

AIMSDK为开发者提供了丰富的消息功能,功能如下所示:
消息功能 说明
消息推送 AIMSDK可以通过同步协议将实时消息主动推送到客户端。当接收方不在线时,IMPaaS会暂存为离线期间的离线消息,等接收方下次登录时,将离线消息推送给接收方。
说明 离线期间时长最多为一周,离线消息最多存储7000条。
多端同步 同账号多客户端在线时,其中一端发送的新消息会下发给其他端。
历史消息 支持本地历史消息和IMPaaS云端历史消息的存储,可以通过拉取消息的接口拉取本地与云端历史消息。
说明 云端历史消息最多保存三年。
消息回复 引用一条已有消息在其基础上添加一条新消息,并将两条消息合并发送给接收者。
消息转发 将一条或数条消息逐一或者合并转发给其他用户。
消息撤回 撤回已经发送成功的消息,可撤回的时长在阿里云应用控制台可配。
已读回执 消息发送者能够知道有多少接受者已读;接收者多端登录时,能够同步各端的已读状态。
本地消息 可以将消息发送到本地而不发送给任何接受者,消息只会出现在本地数据库中。
重发消息 将本地消息重新发送给之前设定的接受者。
系统消息 可以通过结构化消息体实现系统消息。
@消息 可以通过结构化消息体实现@消息。
更多内容,请参见消息收发

会话管理

AIMSDK提供了会话管理,可以分为单聊会话和群聊会话。
  • 单聊支持功能如下所示:
    会话功能 说明
    创建会话 将会话成员置顶并创建一个会话。
    拉取会话 可以选择拉取本地会话和拉取云端会话,SDK也会自动同步云端会话。
    隐藏会话 隐藏一个本地的会话,当该会话接收到一个新消息时显示。
    删除会话 删除一个本地已有会话以及会话的所有本地聊天记录。
    静音会话 可以将一个会话标记为免打扰状态。
    会话置顶 将一个会话置顶,可以根据置顶顺序来对会话进行排序。
    激活会话 被激活的会话不会计算红点数。
    清空会话 清空指定会话的所有本地消息,并清除会话红点。
    会话草稿 可以将本地的草稿保存在会话中,实现客户端的草稿逻辑。
    正在输入 正在输入消息内容的发送者可以发送正在输入状态给会话成员(仅单聊)。
  • 群聊支持功能如下所示:
    群聊功能 说明
    权限设置 可以自由设置群权限和权限者列表,实现多级权限。
    修改群成员 可以将用户添加或者踢出群聊。
    全体禁言 设置一个群的全体禁言状态。
    禁言黑名单 设置群成员的禁言状态以及解除禁言的时间。
    禁言白名单 允许群成员在全体禁言时依然能够发言。
    转移群主 将群的所有权转移给指定用户。
    解散群 解散一个群聊。
    离开群 群成员可以主动离开群聊。
    更新群信息 可以更新群通知、群标题、群员昵称、群员角色、群头像信息。
更多信息,请参见消息收发

本地搜索

AIMSDK依赖本地存储能力,提供了本地搜索服务,不仅支持纯文本消息的分词搜索,也可对经特殊处理的非文本消息进行搜索。目前不支持服务端搜索。支持如下搜索能力:
搜索功能 说明
纯文本消息搜索 对本地的纯文本消息记录进行搜索。
非文本消息搜索 通过给非文本消息(例如图片消息、视频消息)添加搜索字段实现非文本消息的搜索。
搜索结果以会话聚合 搜索结果中将包含结果消息所在的会话信息。
搜索群名称 通过群名称搜索本地的群聊会话。
搜索内容分页 可以指定返回的搜索结果的条数和偏移位置,实现搜索结果分页。
更多内容,请参见本地搜索