Android 集成融云

简述Android如何集成融云即时通讯<新手向第一篇>
第一篇技术博客,写的不好,欢迎大家讨论.
本篇适合从来没有集成过即时通讯的朋友.

最近做了几个项目,期间用到了几个技术,在这里记录一下,一方面加深一下自己的记忆,一方面如果有幸能帮助到观看的人,那也是甚好.

最近的项目是使用即时通讯:在环信和融云间,我选择了融云.融云提供了一个即时通讯的开源项目,不了解融云功能的朋友,希望你们先下载这个demo自己跑一跑,大概就知道我们集中融云之后究竟能让自己的项目集成到什么程度.
融云即时通讯为我们提供了两套SDK,
IMKit 带界面
IMLib 不带界面
我们这篇文章主要讲解通过IMKit实现的即时通讯.

[SealTalk以及SDK下载](http://www.rongcloud.cn/download)

一. 开始之前

我们要通过一款App进行聊天,第一点就是要有账号,账号就是我们身份的识别,如融云原话说:

设计原理说明:

融云认为,每一个设计良好且功能健全的 App 都应该能够在本地获取、缓存并更新用户信息。所以,融云不维护用户基本信息(用户
Id、昵称、头像)。此外,App 提供用户信息也避免了由于缓存导致的用户信息更新不及时,App 中不同界面上的用户信息不统一(比如:一部分
App 从 App 服务器上获取并显示,一部分由融云服务器获取并显示),能够获得最佳的用户体验。

融云提供了两种方式从 App 的数据源显示用户昵称和头像。

也就是说我们需要自己管理所有账号的信息.

二. 初始化与连接服务器

融云androuid开发指南
这是融云的开发指南,里面有sdk的下载地址,安装方法,甚至连视频都有.首先相信大家按照指南集成完sdk肯定是没有问题的.接下来.
如果要使用融云的SDK我们首先要在application中进行初始化 代码很简单

  RongIM.init(this);

传入app的上下文,初始化这就算完成了.接下来,我们进行连接服务器
>

 RongIM.connect(token, new RongIMClient.ConnectCallback() {
            @Override
            public void onTokenIncorrect() {
                //token失效
                com.orhanobut.logger.Logger.i("token失效");
            }

            @Override
            public void onSuccess(String s) {
                //登陆成功
                com.orhanobut.logger.Logger.i("登陆成功!");
            }

connect()这个方法就相当于连接融云服务器,我们要传入两个参数
token
ConnectCallback
主要解释一下token是什么.
正如第一段所说,我们每一个使用app登陆的账号,是由我们自己管理的,融云只要求用户的userId保持唯一即可,通过userId,加上API签名,再通过网络接口传给融云服务器即可,获得融云计算的此userID的唯一token.

这里当时我不太明白,耽误了很多时间.这是签名生成代码的示例.
签名生成代码示例

           相信您的心里和我当时一样,那就是,到底如何拿到token?

由于token的生成需要app的App Secret,这就是我们app的私钥,如果直接放在app的代码里,这是非常不安全的.所以生成签名,验证签名,向服务器申请token需要在服务器端进行.

,但是大家可能只是想要集成一个demo 自己测试一下,并不在乎安全性.融云为我们提供了开源的签名,以及各种与融云服务器API交互的serviceSDK ,可以先将这个开源的serviceSDK集成到我们的项目中,模拟有服务器来配合开发.
下载地址:serviceSDK

rongCloud = RongCloud.getInstance(appKey, appSecret);
rongCloud.user.getToken(userId,name,portraitUri);

集成之后,我们首先生成rongCloud 的对象,然后调用getToken 就可了,签名的操作,SDK已经帮我们做好了.成功拿到了当前登录用户的 token,就可以使用connect()方法进行连接了.

三.消息列表

融云分为三种消息列表通过Fragment 的方式集成在我们的activity中上.

会话列表:ConversationListFragment
聚合后的会话列表:SubConversationListFragment
会话页面:ConversationFragment

今天先写到这里,我们下期再见.

你可能感兴趣的:(即时通讯,android)