http://www.ox-holdings.com

可能会有各种原因导致想迁移到其他云服务厂商平台的想法,融云官方网站

摘要即时通讯云融云将于2016 年 11 月 16 日 - 2016 年 12 月 31 日,对于集成 SDK 2.8.0 及以上版本、开启红包功能(申请上线),并在 App 内完成红包发送的体验的开发者账户,即有机会赢得600元奖金。一、活动时间2016 年 11 月 16 日 - 2016 年 12 月31日二、参与方式集成 SDK 2.8.0 及以上版本、开启红包功能(申请上线),并在 App 内完成红包发送的体验,即有机会赢得奖金。三、赠送规则① 12 月 31日前,App 内成功发送 1 个红包,赠送 300 元;② 12 月 31日前,App 内成功发送 10 个及以上红包,再赠送 300 元;每个 App 最多可获得 600 元奖金,奖金充入对应融云账户(短信、音视频、客服不可用)。四、奖品数量100 份,数量有限,送完为止。五、奖品有效期3 个月(到账之日起开始计时)六、活动说明1、活动对象:集成融云 SDK 2.8.0 及以上版本,开启红包功能(申请上线)的客户;同时客户需使用单聊、群聊、聊天室任一功能;2、本期活动结束后 5 个工作日内把奖金汇入对应的融云账户中,获奖名单(以融云后台数据统计为准)将在融云官网中公布并邮件告知;3、600 元奖金不可兑现、不设找零;4、若采用作弊行为恶意刷数据,取消活动资格,所得奖励不予承兑;5、如出现不可抗力或情势变更的情况(包含但不限于重大灾害事件、活动受政府机关指令需求停止或调整、活动遭受严重网络攻击或系统故障),融云有权暂停或取消本次活动,并可依据相关法律法规条款主张免责,此次活动最终解释权归融云所有;6、活动细则如有疑问请联系:010-57973273 ;7、活动交流 QQ 群 : 425758618。如 12 月 5 日前满足条件的客户希望提前领取奖品,可联系群内红包小助手提前兑换奖品。七、活动地址

Android SDK 开发指南

选写个前期准备准备工作。

很多开发者 在使用过其他家平台之后,可能会有各种原因导致想迁移到其他云服务厂商平台的想法。这里写一篇关于到融云平台的平滑迁移的详细教程。方便大家参考。

直播 App 有时需要展示当前用户列表。单个 AVChatRoom 本身支持的用户数量无上限,但是只能够获取到部分群成员列表,最多为300个成员。

视频详解

以下视频是对融云 Android SDK 开发使用的详细讲解,您可以在阅读文档时配合学习。

 

更多视频教程如下:

  1. CSDN 融云 Android SDK 开发使用教学视频
  2. InfoQ 融云 Android SDK 开发使用教学视频

注册开发者帐号

首先是迁移条件

AVChatRoom 的人数统计并不是实时的,有1分钟左右的时延。App 管理后台通过 REST API 接口获取当前群人数

前期准备

开发者在集成融云即时通讯、实时网络能力前,需前往融云官方网站注册创建融云开发者帐号。

第三方云服务支持并开通服务端消息路由功能(用户 A 给用户 B 发消息的过程中,服务器支持通过 Callback 或者 WebHook 的模式将消息转发给开发者提供的服务器 URL 地址)。

云通信的消息原生支持文本、图片、语音、表情等。如果 App 存在一些特殊的消息需求(例如点赞消息、红包消息等),可以通过云通信的自定义消息实现。

注册开发者帐号

开发者在集成融云即时通讯、实时网络能力前,需前往融云官方网站注册创建融云开发者帐号。

下载 SDK

消息架构模型

AVChatRoom的缺点——为了更好支持大型直播,AVChatRoom 在一些次要功能点上做了让步,包括只能拉取到部分成员列表(最多300人)、不能移除成员(可以通过禁言来实现近似目的)、不能邀请用户入群(创建时也不能邀请,只能由用户主动申请入群)、不能修改群成员资料、不能设置管理员、不能获取完整成员列表、不能拉取历史消息。

下载 SDK

您可以到融云官方网站下载融云 SDK。融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。各组件的功能如下:

名称 功能介绍 支持的 CPU 架构
IMKit 融云 IM 界面组件 ——
IMLib 融云 IM 通讯能力库 armeabi, armeabi-v7a, arm64-v8a, x86
CallKit 融云音视频界面组件 ——
CallLib 融云音视频核心组件 armeabi-v7a, x86
LocationLib 融云位置相关库 ——
PushLib 融云第三方推送库 armeabi, armeabi-v7a, arm64-v8a, x86
RedPacket 融云红包相关组件 ——

IMKit 集成了会话界面,并且提供了丰富的自定义功能,我们推荐首次接触融云的客户直接使用 IMKit 来快速集成和开发。 
IMLib 提供了基础的通信能力,较轻量,适用于对 UI 有较高订制需求的开发者,但您需要自己去实现大量的界面和功能。 
CallKit 融云音视频通话的界面组件,包含了单人、多人音视频通话的界面的各种场景和功能。您可以通过集成该组件来实现丰富的音视频通话界面,并进行自己的 UI 定制开发。同时我们开源了 CallKit,您可以根据您的需要去使用。 
CallLib 融云音视频通话核心能力组件。 
LocationLib 位置相关库文件 
PushLib 融云支持第三方推送(小米),您可以从这里下载对应的第三方推送 jar 包。 
RedPacket 融云红包相关组件,通过集成该组件,即可快速实现红包功能。 

您可以到融云官方网站下载融云 SDK。融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。各组件的功能如下:

实现即时通讯平台架构迁移的核心逻辑是实现新旧有即时通讯系统消息互通。假设旧 App 端为 A,新 App 端为 B,旧有即时通讯服务为 IM_Old,新即时通讯服务为 IM_New,那么 A 发给 B 的消息要先通过 IM_Old 服务发送给 IM_New,再由 IM_New 服务送达 B,反之亦然。

公开群/聊天室/互动直播聊天室:后台不会回收群组,除非群主解散,或者所有成员都退出群组

创建应用

您要进行应用开发之前,需要先在融云开发者平台创建应用。如果您已经注册了融云开发者帐号,请前往融云开发者平台创建应用。

您创建完应用后,首先需要了解的是 App Key / Secret,它们是融云 SDK 连接服务器所必须的标识,每一个 App 对应一套 App Key / Secret。针对开发者的生产环境和开发环境,我们提供两套 App Key / Secret,两套环境的功能完全一致。您在应用最终上线前,使用开发环境即可。

图片 1

App Key / Secret 位置

开发环境 App Key / Secret 是专门为您提供的仅供开发使用的,开发环境将和生产环境的数据隔离,避免开发环境数据和线上生产环境数据互相冲突。 

生产环境的 App Key / Secret 默认先不提供,等您提交上线后,我们会提供生产环境的 App Key / Secret。

名称功能介绍支持的 CPU 架构

实际架构上,需要中间开发部署一个消息流转适配器负责 IM_Old 和 IM_New 之间的消息转发和适配。

iOS杀掉进程后,>90S,后台自动关闭房间

获取 Token

Token 称为用户令牌,App Key 是您的 App 的唯一标识,Token 则是您 App 上的每一个用户的身份授权象征。您可以通过提交 userId 等信息来获得一个该用户对应的 Token,并使用这个 Token 作为该用户的唯一身份凭证与其他用户进行通信。

Token 的主要作用是身份授权和安全,因此不能通过客户端直接访问融云服务器获取 Token,您必须通过 Server API 从融云服务器 获取 Token 返回给您的 App,并在之后连接时使用。详细描述请参考 Server 开发指南中的用户服务和获取 Token 方法小节。

为了方便您在集成和测试过程中使用,我们还提供了 API 调试工具,在您不能部署服务器程序时,可以直接通过传入 userId 和 name 来获得 Token。请访问融云开发者平台,打开您想测试的应用,在左侧菜单中选择“API 调试”即可。

  • userId : 每一个用户对应一个 userId,这个 userId 是您维护的,所以您可以直接赋值,两个您的的用户通信,对于融云来说就是两个 userId 间通讯。
  • name : 用户的显示名称,用来在 Push 推送时,或者您没有传入用户信息时,默认显示的用户名称。
  • portraitUri : 用户头像,用来当您没有传入用户信息时作为默认头像,如果图片不存在,IMKit 会显示默认头像。

通过 API 调试,您可以得到一个 Token 返回值。您就可以直接使用这个 Token 为这位用户进行发送和接受消息。

IMKit融云 IM 界面组件——

图片 2

用户加入 AVChatRoom 后,如果发生异常登出(logout)或者 App 进程崩溃(crash)的情况,在重新上线(login)或者重启 App 进程后,需要再次调用申请加群才能继续在原来的 AVChatRoom 中收发消息。

SDK 集成

环境要求

在您集成融云 SDK 前环境要求如下:

  • Android SDK Build-tools 请升级到 21 及以上版本。
  • JAVA 编译版本 JDK 1.7 及以上版本。
  • 使用 IMKit 需要 Android Support V4 21 及以上版本。

Android SDK 最低支持 Android API 9: Android 2.3(Gingerbread)。

我们建议初次集成 SDK 的用户,先创建一个空项目来集成融云的 SDK,然后再考虑加入您的工程。

IMLib融云 IM 通讯能力库armeabi, armeabi-v7a, arm64-v8a, x86

消息收发流程

主要包括:ImSDK.framework、IMCore.framework、TLSSDK.framework、QALSDK.framework。各个包的说明如下:

导入 SDK

以 Module 形式导入前面下载的融云 SDK 里面的各个组件。

打开您的工程, File -> New -> Import Module

图片 3

打开您从官网下载的融云 SDK,选择 IMLib。如图:

图片 4

根据您的需要,以同样的步骤导入SDK里的其它组件: IMKit, CallKit, CallLib, RedPacket。

将 PushLib 中的 jar 包 和 pushDaemon -> libs 目录下应用所支持平台的 so 拷贝到您应用的 libs 目录下,另外还需要将 pushDaemon -> executable 目录下各平台的可执行文件 push_daemon 拷贝到您应用 Module 的 assets 目录下。如图:

图片 5

注意 : 放置 so 的文件夹位置需要和您 build.gradle 文件中配置的 jni 目录一致。

图片 6

将 LocationLib 里的 jar 包拷贝到您应用的 libs 目录下(如果不需要位置功能,可跳过此步骤)。

图片 7

注意

音视频通话组件 CallLib 仅支持 armeabi-v7a 和 x86 架构 CPU (组件功能),如果您使用了我们的音视频通话功能,注意需要把 IMLib 和 PushLib 组件中其它 CPU 架构的 so 删除。或者您也可以在应用的 build.gradle 文件中增加如下配置来过滤 so :

defaultConfig {
    applicationId "XXX"
    ...
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}

CallKit融云音视频界面组件——

迁移过程中,新 App 同旧 App 之间的消息收发流程如下:

必选SDK:必须是一个版本成套使用,不同版本不可混用

添加配置

打开应用的 build.gradle,在 dependencies 中添加相应模块的依赖。如图:

图片 8

打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为您自己的 AppKey. 如图:

<meta-data
    android:name="RONG_CLOUD_APP_KEY"
    android:value="您的应用 AppKey" />

打开应用的 App Module 的 AndroidManifest.xml 文件, 把从高德官网获取的 AppKey 添加到 meta-data 里 (如果您不使用位置功能,可跳过此步骤)。

<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="高德地图的 AppKey" />

在应用的 App Module 的 AndroidManifest.xml 文件中,添加 FileProvider 相关配置,修改 android:authorities 为 “您的应用的包名称.FileProvider”。

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="您的应用包名.FileProvider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/rc_file_path" />
</provider>

CallLib融云音视频核心组件armeabi-v7a, x86

图片 9

* ImSDK.framework IM接口SDK

初始化

在整个应用程序全局,您只需要调用一次 init 方法。对于快速集成,我们建议您在 App 主进程初始化,您只需要实现一句函数,以下为融云 Demo 代码示例:

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        RongIM.init(this);
    }
}

关于初始化的注意事项

融云的 SDK 使用了跨进程机制来进行通信,运行后您的 App 后您会发现以下三个进程: 1、您的应用进程;2、您的应用进程: ipc,这是融云的通信进程;3、io.rong.push,这是融云的推送进程。

您可以在任意进程使用 RongIM,我们推荐初次集成的用户在主进程使用。

LocationLib融云位置相关库——

架构所需的 4 个接口:

* QALSDK.framework 网络SDK

连接服务器

连接服务器前,确认已通过融云 Server API 接口获取 Token。

connect() 方法在整个应用只需要调用一次,且必须在主进程调用。如果连接失败, SDK 会自动启动重连机制,进行最多10次重连,分别是1, 2, 4, 8, 16, 32, 64, 128, 256, 512秒后。如果仍然没有连接成功,还会在检测网络状态变化时再次重连。应用不需要做额外的重连操作。

/**
 * <p>连接服务器,在整个应用程序全局,只需要调用一次,需在 {@link #init(Context)} 之后调用。</p>
 * <p>如果调用此接口遇到连接失败,SDK 会自动启动重连机制进行最多10次重连,分别是1, 2, 4, 8, 16, 32, 64, 128, 256, 512秒后。
 * 在这之后如果仍没有连接成功,还会在当检测到设备网络状态变化时再次进行重连。</p>
 *
 * @param token    从服务端获取的用户身份令牌(Token)。
 * @param callback 连接回调。
 * @return RongIM  客户端核心类的实例。
 */
private void connect(String token) {

    if (getApplicationInfo().packageName.equals(App.getCurProcessName(getApplicationContext()))) {

        RongIM.connect(token, new RongIMClient.ConnectCallback() {

            /**
             * Token 错误。可以从下面两点检查 1.  Token 是否过期,如果过期您需要向 App Server 重新请求一个新的 Token
             *                  2.  token 对应的 appKey 和工程里设置的 appKey 是否一致
             */
            @Override
            public void onTokenIncorrect() {

            }

            /**
             * 连接融云成功
             * @param userid 当前 token 对应的用户 id
             */
            @Override
            public void onSuccess(String userid) {
                Log.d("LoginActivity", "--onSuccess" + userid);
                startActivity(new Intent(LoginActivity.this, MainActivity.class));
                finish();
            }

            /**
             * 连接融云失败
             * @param errorCode 错误码,可到官网 查看错误码对应的注释
             */
            @Override
            public void onError(RongIMClient.ErrorCode errorCode) {

            }
        });
    }
}

PushLib融云第三方推送库armeabi, armeabi-v7a, arm64-v8a, x86

1、旧有即时通讯平台的消息路由接口:用来将旧有系统中的消息发送到消息流转适配器中。

* TLSSDK.framework 登录SDK

配置会话列表

融云 IMKit SDK 使用了 Fragment 作为会话列表和会话界面的组件,其优点是支持各种嵌套方式,更符合您的定制化需求。 下面说明如何在 Activity 里以静态方式加载融云 Fragment.

RedPacket融云红包相关组件——

2、旧有即时通讯平台的消息发送接口:用来从消息流转适配器中发送来自融云系统的消息。

可选SDK:

配置布局文件

这是您的会话列表 Activity 对应的布局文件:conversationlist.xml。注意 android:name 固定为融云的 ConversationListFragment。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment
        android:id="@+id/conversationlist"
        android:name="io.rong.imkit.fragment.ConversationListFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

IMKit 集成了会话界面,并且提供了丰富的自定义功能,我们推荐首次接触融云的客户直接使用 IMKit 来快速集成和开发。

3、融云即时通讯平台的消息路由接口:用来将融云系统中的消息发送到消息流转适配器中,查看消息路由服务文档。

* IMCore.framework IM核心功能

新建 Activity
public class ConversationListActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.conversationlist);
    }
  }

IMLib 提供了基础的通信能力,较轻量,适用于对 UI 有较高订制需求的开发者,但您需要自己去实现大量的界面和功能。

4、融云即时通讯平台的消息发送接口:用来从消息流转适配器中发送来自旧有系统的消息,查看消息发送服务文档。

* 如果使用IM聊天必须加入,如果只用登录功能(如只使用音视频的情况,可不加入)

配置 intent-filter:

融云 SDK 是通过隐式调用的方式来实现界面跳转的。因此您需要在 AndroidManifest.xml 中,您的会话列表 Activity 下面配置 intent-filter,其中,android:host 是您应用的包名,需要手动修改,其他请保持不变。

<!--会话列表-->
<activity
    android:name="io.rong.fast.activity.ConversationListActivity"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="stateHidden|adjustResize">

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />

        <data
            android:host="io.rong.fast"
            android:pathPrefix="/conversationlist"
            android:scheme="rong" />
    </intent-filter>
</activity>

CallKit 融云音视频通话的界面组件,包含了单人、多人音视频通话的界面的各种场景和功能。您可以通过集成该组件来实现丰富的音视频通话界面,并进行自己的 UI 定制开发。同时我们开源了 CallKit,您可以根据您的需要去使用。

迁移实施过程

* 如果不加入IMCore.framework,使用时需 #import "ImSDK/ImSDKSimple.h",不要包含其他头文件,否则可能会引起编译错误

配置聚合会话列表

融云支持在会话列表页面自定义某种类型的会话以聚合形式展示,比如,定义所有私聊会话聚合显示,则在会话列表页所有私聊会话聚合显示为“我的私人会话”,点击“我的私人会话”,会进入所有私聊会话的展示页面,这个页面即为聚合会话列表,如图:

图片 10

聚合会话列表

如果您的应用定义了聚合会话,请按照下面的说明进行相应配置,否则可以直接跳过此步骤。

自定义聚合会话列表请参考会话列表自定义。

CallLib 融云音视频通话核心能力组件。

1、新版 App 按照正常流程集成融云 SDK,服务端也接入融云的相关服务。

* IMSDKBugly.framework Crash上报功能

配置布局文件

这是您的聚合会话列表 Activity 对应的布局文件:subconversationlist.xml。 注意 android:name 固定为融云的 SubConversationListFragment。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fragment
        android:id="@+id/subconversationlist"
        android:name="io.rong.imkit.fragment.SubConversationListFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

LocationLib 位置相关库文件。

Android 开发指南

* 如无特殊需要,推荐使用,在控制台页面可以查看Crash率等信息

新建 Activity :

public class SubConversationListActivtiy extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.subconversationlist);
      }
}

PushLib 融云支持第三方推送(小米),您可以从这里下载对应的第三方推送 jar 包。

iOS 开发指南

* 如果不加入此SDK,需要调用 [TIMManager sharedInstance] disableCrashReport]; 禁用功能

郑重声明:本文版权归新匍京a奥门-最全网站手机版app官方下载所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。