前言:
对于iOS开发,目前比较流行的即时通信有:融云、环信、网易云信,都是不错的选择。由于工作需求,笔者粗略的学习了一下融云即时通讯。下面就简单的总结一下如何集成单聊的聊天界面。
简介:
融云是国内首家专业的即时通讯云服务提供商,专注为互联网、移动互联网开发者提供免费的即时通讯基础能力和云端服务。通过融云平台,开发者不必搭建服务端硬件环境,就可以将即时通讯、实时网络能力快速集成至应用中。
融云 SDK 包括两部分:IM 界面组件和 IM 通讯能力库。
IM 界面组件 - IMKit
IMKit 是融云 SDK 的核心特色之一。融云将即时通讯产品中最复杂的会话列表、聊天窗口、消息内容展现、会话设置等功能封装为组件,通过简短的代码,您就可以直接将以上界面集成到您的 App 产品中,省去大量的开发调试时间。融云同时支持业内最丰富的自定义界面组件功能,您可以针对自己界面需求自由设计开发。
IM 通讯能力库 - IMLib
IMLib 是不含界面的基础 IM 通讯能力库,封装了通信能力和会话、消息等对象。引用到 App 工程中后,需要开发者自己实现 UI 界面,相对较轻量,适用于对 UI 有较高订制需求的开发者。
前期准备:
建议先浏览融云SDK开发文档: http://www.rongcloud.cn/docs/ios.html, 因为里面讲的很详细
一.注册开发者账号 http://www.rongcloud.cn
二.创建应用,创建完应用之后,在你的应用中,会自动创建两套的环境,即:开发环境和生产环境。同时你会获得App Key 和App Secret,它们是融云 SDK 连接服务器所必须的标识,每一个 App 对应一套 App Key 和 Secret。
三.下载与导入SDK,有两种方式可选(推荐使用CocoaPods安装SDK,因为可极大简化安装过程)
1.使用CocoaPods导入融云SDK,这里就不再赘述,自行百度,很简单的。
2.手动导入融云SDK,你可以到融云官方网站下载融云SDK http://www.rongcloud.cn/downloads
注意:如果你使用 IMKit,您需要将所有的文件导入您的工程中; 如果您使用 IMLib,您需要导入除 RongIMKit.framework 和 RongCloud.bundle 之外的所有文件。
代码编写:
1.初始化SDK(在AppDelegate.m方法中引入SDK以及注册应用)
- 1
- 2
- 3
2.获取Token值
Token 即用户令牌,相当于您 APP 上当前用户连接融云的身份凭证。在您连接融云服务器之前,您需要请求您的 App Server,您的 App Server通过Server API 获取 Token 并返回给您的客户端,客户端获取到这个 Token 即可进入下一步连接融云服务器。
为什么必须在服务器端请求 Token,客户端不提供获取 Token的接口?
因为获取 Token 时需要提供 App Key 和 App Secret。如果在客户端请求 Token,假如您的 App 代码一旦被反编译,则会导致您的 App Key和App Secret 泄露。所以,务必在您的服务器端获取 Token。
我们在开发者控制台提供了 API 调试的功能,在开发初期阶段,您可以通过其中获取 Token 功能,手动获取 Token 进行测试。
3.连接服务器
将您在上一步获取到的 Token,通过 RCIM 的单例,传入 -connectWithToken:success:error:tokenIncorrect:
方法,即可建立与服务器的连接。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
4.启动聊天界面
融云 IMKit 中已经实现了完整的聊天界面,包含发送、接收、更新等 UI,并覆盖常用的IM交互场景,您直接使用或继承 RCConversationViewController,即可快速启动和使用聊天界面。
添加一个启动聊天按钮,直接调起单聊界面
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
5.启动会话列表界面
融云 IMKit 已经实现了一个默认的会话列表视图控制器,你直接使用或继承 RCConversationListViewController,即可快速启动和使用会话列表界面。
首先新建一个TestChatViewController的类,继承于RCConversationListViewController,在viewDidLoad中设置需要显示的会话类型,需要将哪些类型的会话聚合显示。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
然后初始化会话列表并显示
- 1
- 2
尾巴:
以上就是实现单聊的聊天界面和会话列表界面的全部内容,你只需要在模拟器上运行一遍,更换token值和UserId,再次运行在真机上,就可实现真机与模拟器间即时通讯。
最后补充一点:如果你的融云账号创建的项目 是很久之前的, 一直没使用, 那融云会默认 APP Key 失效, 无法在API调试中 获取到token.