本系列知识点来自于:b站尚硅谷Android通信实战。
一、环信集成概述
环信和用户体系的集成主要发生在2个地方,服务器端集成和客户端集成。
1.1发送消息过程
客户端通过环信服务器进行消息发送。如下图所示:
在线状态:客户端A发送消息到环信服务器,环信服务器推送消息到客户端B。
离线状态:客户端A发送消息到环信服务器,环信服务器检测到客户端B不在线,会添加到离线缓存中,当客户端B登录后服务器会把离线消息推送给客户端B。
1.2聊天记录保存
客户端A发送消息到环信服务器的同时,SDK 会保存这条消息到本地数据库(SDK 内部创建数据库,不允许直接操作),环信服务器在推送消息到客户端B的同时也会在服务器记录下来(消息历史记录免费存储3天),客户端B收到消息后,SDK 会将这条消息存储到本地数据库。
注:客户端并未提供去服务器获取聊天记录的接口,所以,如果换了设备或者清空了数据,聊天记录都不会存在。如果有需求要从服务器拉取聊天记录,可以在自己服务器处理。
二、下载对应的SDK
环信官网:
环信即时通讯云https://console.easemob.com
下载好最新的sdk后——>解压得到如下文件夹
doc 文件夹:SDK 相关 API 文档
examples 文件夹:EaseIm3.0 (修改好配置之后可以直接使用)
libs 文件夹:包含 IM 功能所需要的 jar 和 so 文件
tools 文件夹:工具类文件
2.1 Android SDK 介绍
环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分:
SDK_Core 为核心的消息同步协议实现,完成与服务器之间的信息交换。
SDK 是基于核心协议实现的完整的 IM 功能,实现了不同类型消息的收发、会话管理、群组、好友、聊天室等功能。
EaseIMKit 是一组 IM 相关的 UI 控件,旨在帮助开发者快速集成环信 SDK。
开发者可以基于 EaseIMKit 或者环信 SDK 开发自己的应用,前者因为把消息的发送接送等功能封装到了内部,集成时开发者不需要太关心消息是怎么发送、怎么接收等逻辑。请查阅EaseIMKit 使用指南。
SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块:
EMClient: SDK 的入口,主要完成登录、退出、连接管理等功能。也是获取其他模块的入口。
EMChatManager: 管理消息的收发,完成会话管理等功能。
EMContactManager: 负责好友的添加删除,黑名单的管理。
EMGroupManager: 负责群组的管理,创建、删除群组,管理群组成员等功能。
EMChatroomManager: 负责聊天室的管理。
三、集成过程
3.1创建项目
创建项目使用MVC的结构来实现功能。
3.2 在环信中创建应用
前面的依照手册来。主要要注意注册模式。
- 授权注册:需要通过APP的后台服务器(在服务器中加入一些校验的方法)
- 开放注册:无需通过APP的后台服务器
3.3 手动复制 jar 包及 so 导入
在下载的 SDK 中,有个 libs 文件夹,libs 文件夹里是 jar 包和 so 文件。
3.4 通过 gradle 远程链接导入
Android SDK 介绍及导入 [IM开发文档]
具体做法:
修改minSdkVersion 19(看版本要求) //EaseIMkit implementation 'io.hyphenate:ease-im-kit:3.8.5' implementation 'io.hyphenate:hyphenate-chat:3.8.5'- 在AndroidManifest.xml中添加依赖和配置
设置AppKey 自定义一个Application //EaseIM初始化