跳到主要内容

数据中心

融云提供国内和国外数据中心,可分别支持主营业务位于国内或国外的业务。

在控制台新建应用时,即需要为应用指定数据中心。

  • 不同数据中心使用的客户端 SDK 一致,使用海外数据中心的 App 在集成时必须修改客户端 SDK 的配置。
  • 不同数据中心必须使用与地域对应的服务端 API 地址。
  • 不同数据中心之间不支持迁移数据,请谨慎选择数据中心。

选择数据中心​

您可以选择以下的数据中心:

  • 国内数据中心
  • 新加坡数据中心

下列数据中心默认不支持自助选择。如您希望选择以下的数据中心中的任何一个,您可以联系融云的商务人员。收到您的请求并完成必要的审核流程后,我们将为您开通相应的数据中心选项。开通后,您可以在控制台选择以下的数据中心。

  • 北美数据中心
  • 新加坡 B 企业合作数据中心
  • 沙特数据中心
提示
  • 当您选择了国内数据中心,App 服务端集成融云服务端 API 时,必须使用国内的 API 地址。客户端集成默认连接国内数据中心。
  • 当您选择了海外的数据中心,如新加坡、新加坡 B、北美、或沙特,App 服务端集成融云服务端 API 时,必须使用相对应的 API 海外地址。集成客户端时,您须传入相对应的区域码,或者手动设置 SDK 连接的服务器的地址。

国内数据中心​

如果您的业务主要在国内,且符合以下描述,建议选择国内数据中心。

  • 用户及消息数据均需要存储在国内
  • 应用在国内上线、运营
  • 应用用户基本在国内,无高频跨国通信需求

使用国内数据中心,请注意以下事项:

  • 在控制台创建应用时,已指定数据中心为国内。

  • 集成客户端 SDK 时,可无需关心 SDK 内部数据中心地址配置。融云客户端 SDK 默认连接国内数据中心。

  • 应用服务器集成融云 Server API 时,必须使用国内数据中心专用的 API 地址,如下:

    • api.rong-api.com
    • api-b.rong-api.com

海外数据中心​

如果您的业务主要在国外,应用直接在海外上线服务于当地用户,建议选择海外数据中心(新加坡、新加坡 B、北美、沙特)。了解融云海外数据中心的接入节点,请参见海外接入节点。

提示

如您的 App 用户遍布全球,跨国用户互通频繁,对延迟时间、数据安全敏感的业务。可接入融云全球通信网络服务,可使用户在海外访问国内延迟从 2000ms 缩短至多 190ms,查看详情。

使用海外数据中心(新加坡、新加坡 B、北美、沙特),请注意以下事项:

  • 在控制台创建应用时,已指定数据中心为新加坡、新加坡 B、北美、或沙特。

  • 集成客户端 SDK 时,配置 SDK 连接相对应的海外数据中心地址。

    • 如果您使用的 Android/iOS SDK 版本 ≧ 5.4.2,无需使用本文档介绍的配置方法。请直接在 SDK 的初始化配置中传入数据中心的区域码。配置成功后,SDK 会启用与区域码对应的内部服务地址。详见客户端 SDK 的初始化文档。
    • 如果您使用的 Android/iOS SDK 版本 < 5.4.2,或使用其他平台的 SDK,参见下文 配置 SDK 连接海外数据中心。
  • 应用服务器集成融云 Server API 时,必须使用海外数据中心(新加坡、北美)专用的 API 地址。

    参见下文使用服务端 API 海外地址。

配置 SDK 连接海外数据中心​

如果您在融云平台创建的应用使用海外数据中心(非国内(北京)数据中心),则您必须在集成 SDK 时修改 SDK 使用的数据中心。

提示

App Key 所属的数据中心必须与客户端 SDK 中的数据中心保持一致。

通过区域码方式配置​

在旧版 SDK 中,如果使用海外数据中心,必须在客户端 SDK 手动配置对应数据中的导航地址、统计服务地址等,容易因为遗漏其中某项配置导致问题。

为了简化海外数据中心配置流程,我们在新版 SDK 中直接封装了不同数据中心的配置为区域码。只要您的 App Key 使用海外数据中心,只需要在初始化时传入有效的区域码(AreaCode / RCAreaCode )即可完成配置。除特殊场景外,不再需要手动更改一系列域名地址。

如果您集成的 SDK 为符合下方的要求,可以直接配置海外数据中心的区域码:

  • Android 端 IMLib/IMKit:SDK ≧ 5.4.2

    请先在控制台查询当前 App Key 所属数据中心,并根据 API 文档 AreaCode 找到对应枚举值。示例代码中配置了区域码为 AreaCode.SG (新加坡数据中心)。

    Java
    String appKey = "Singapore_dev_AppKey";
    AreaCode areaCode = AreaCode.SG;

    InitOption initOption = new InitOption.Builder()
    .setAreaCode(areaCode)
    .build();

    RongCoreClient.init(context, appKey, initOption);
  • iOS 端 IMLib/IMKit:SDK ≧ 5.4.2

    请先在控制台查询当前 App Key 所属数据中心,并根据 API 文档 RCAreaCode 找到对应枚举值。示例代码中配置了区域码 RCAreaCodeSG (新加坡数据中心)。

    Objective C
    NSString *appKey = @"Your_AppKey"; // example: bos9p5rlcm2ba
    RCInitOption *initOption = [[RCInitOption alloc] init];
    initOption.areaCode = RCAreaCodeSG;

    [[RCCoreClient sharedCoreClient] initWithAppKey:appKey option:initOption];
  • Web 端 IMLib:SDK ≧ 5.7.9

    请先在控制台查询当前 App Key 所属数据中心,并根据 API 文档 AreaCode 找到对应枚举值。示例代码中配置了区域码为 AreaCode.SG (新加坡数据中心)。

    JavaScript
    // 应用初始化,请务必保证此过程只被执行一次
    RongIMLib.init({ appkey: '<Your-App-Key>', areaCode: AreaCode.SG});

手动配置海外数据中心域名​

如果您集成了 SDK 的版本与平台组合符合以下描述,暂不支持通过区域码配置为海外数据中心。请按照下方文档手动配置导航服务器地址和统计服务器地址。

  • Android 端 IMLib/IMKit:SDK < 5.4.2
  • iOS 端 IMLib/IMKit:SDK < 5.4.2
  • Web 端 IMLib:SDK < 5.7.9
  • Flutter 端 IMLib/IMKit:SDK < 5.2.4
  • uni-app 端 IMLib/IMKit:SDK < 5.2.4
  • Unity 端 IMLib:SDK < 5.2.4
  • React Native 端 IMLib:SDK < 5.2.4
Android​
提示

如果 SDK 版本 < 5.4.2,请使用以下配置。如果 SDK ≧ 5.4.2,请转至通过区域码方式配置。

在 SDK 初始化 init 之前,请先设置海外数据中心的导航服务器地址和统计服务器地址:

  1. 使用 setServerInfo 方法设置导航服务器地址:

    Java
    /**
    * 设置 海外 数据中心的导航服务器和媒体服务器地址。
    * 此方法要在 {@link #init(Context, String)} 前使用
    *
    * @param naviServer 海外数据中心的导航服务器地址。
    * @param fileServer 文件服务器地址(仅限私有云使用)。
    */
    public static void setServerInfo(final String naviServer, final String fileServer) {
    if (TextUtils.isEmpty(naviServer)) {
    RLog.e(TAG, "setServerInfo naviServer should not be null.");
    throw new IllegalArgumentException("naviServer should not be null.");
    }
    RongIMClient.setServerInfo(naviServer, fileServer);
    }
    • 导航服务器地址(naviServer)
      • 新加坡:nav.sg-light-edge.com(主)、nav-b.sg-light-edge.com(备)
      • 新加坡 B:nav.sg-b-light-edge.com(主)、nav-b.sg-b-light-edge.com(备)
      • 北美:nav.us-light-edge.com(主)、nav-b.us-light-edge.com(备)
      • 沙特:nav.sau-light-edge.com(主)、nav-b.sau-light-edge.com (备)
    • 文件服务器地址(fileServer):该项仅适用于私有云客户进行配置。公有云客户传 null 即可,表示使用默认的文件服务器地址。
  2. 使用 setStatisticDomain 方法设置统计服务地址:

    • 新加坡:stats.sg-light-edge.com
    • 新加坡 B:stats.sg-b-light-edge.com
    • 北美:stats.us-light-edge.com
    • 沙特:stats.sau-light-edge.com
iOS​
提示

如果 SDK 版本 < 5.4.2,请使用以下配置。如果 SDK ≧ 5.4.2,请转至通过区域码方式配置。

在 SDK 初始化 init 之前,请先设置海外数据中心的导航服务器地址和统计服务器地址:

  1. 使用 setServerInfo 方法设置设置导航服务器地址:

    Objective C
    /*!
    设置 海外 数据中心导航服务器和上传文件服务器信息
    @param naviServer 海外 数据中心导航服务器地址,具体的格式参考下面的说明
    @param fileServer 文件服务器地址(仅限私有云使用),具体的格式参考下面的说明
    @return 是否设置成功
    @warning 仅限 海外 数据中心使用,使用前必须先联系商务开通。必须在SDK init之前进行设置。
    @discussion
    naviServer必须为有效的服务器地址,fileServer如果想使用默认的,可以传nil。
    naviServer和fileServer的格式说明:
    1、如果使用https,则设置为https://cn.xxx.com:port或https://cn.xxx.com格式,其中域名部分也可以是IP,如果不指定端口,将默认使用443端口。
    2、如果使用http,则设置为cn.xxx.com:port或cn.xxx.com格式,其中域名部分也可以是IP,如果不指定端口,将默认使用80端口。
    */
    -(BOOL)setServerInfo:(NSString *)naviServer fileServer:(NSString *)fileServer;
    • 导航服务器地址(naviServer)
      • 新加坡:nav.sg-light-edge.com(主)、nav-b.sg-light-edge.com(备)
      • 新加坡 B:nav.sg-b-light-edge.com(主)、nav-b.sg-b-light-edge.com(备)
      • 北美:nav.us-light-edge.com(主)、nav-b.us-light-edge.com(备)
      • 沙特:nav.sau-light-edge.com(主)、nav-b.sau-light-edge.com (备)
    • 文件服务器地址(fileServer):该项仅适用于私有云客户进行配置。公有云客户传 nil 即可,表示使用默认的文件服务器地址。
  2. 使用 setStatisticServer 方法设置统计服务地址:

    Objective C
    /**
    设置统计服务器的信息

    @param statisticServer 统计服务器地址,具体的格式参考下面的说明
    @return 是否设置成功

    @warning 仅限独立数据中心使用,使用前必须先联系商务开通。必须在 SDK init 和 setDeviceToken 之前进行设置。
    @discussion
    statisticServer 必须为有效的服务器地址,否则会造成推送等业务不能正常使用。
    格式说明:
    1、如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 格式,其中域名部分也可以是
    IP,如果不指定端口,将默认使用 443 端口。
    2、如果使用 http,则设置为 cn.xxx.com:port 或 cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80
    端口。(iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 iOS 开发
    ⽂档中的 ATS 设置说明。)

    @remarks 功能设置
    */
    - (BOOL)setStatisticServer:(NSString *)statisticServer;
    • 新加坡:stats.sg-light-edge.com
    • 新加坡 B:stats.sg-b-light-edge.com
    • 北美:stats.us-light-edge.com
    • 沙特:stats.sau-light-edge.com
Web​
提示

如果 SDK 版本 < 5.7.9,请使用以下配置。如果 SDK ≧ 5.7.9,请转至通过区域码方式配置。

在 SDK 的 init 方法中设置海外数据中心的导航服务器地址:

JavaScript
// IMLib v2
RongIMClient.init('<Your-AppKey>', null, { navi: 'https://nav.sg-light-edge.com' } );
// or IMLib v4
RongIMLib.init({ appkey: '<Your-AppKey>', navigators: ['https://nav.sg-light-edge.com'] });
// or IMLib v5
RongIMLib.init({ appkey: '<Your-AppKey>', navigators: ['https://nav.sg-light-edge.com'] });
  • 新加坡:nav.sg-light-edge.com(主)、nav-b.sg-light-edge.com(备)
  • 新加坡 B:nav.sg-b-light-edge.com(主)、nav-b.sg-b-light-edge.com(备)
  • 北美:nav.us-light-edge.com(主)、nav-b.us-light-edge.com(备)
  • 沙特:nav.sau-light-edge.com(主)、nav-b.sau-light-edge.com (备)
小程序​

暂不支持。

Flutter​
提示

仅适用于 5.2.4 及之后版本。暂不支持通过区域码方式配置数据中心。

在 SDK 引擎配置中,写入海外数据中心的导航服务器地址和统计服务器地址:

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
options.naviServer = '配置的导航地址';
options.statisticServer = '配置的统计服务器';
RCIMIWEngine engine = await RCIMIWEngine.create(appKey, options);
  • 导航服务器地址(naviServer)
    • 新加坡:nav.sg-light-edge.com(主)、nav-b.sg-light-edge.com(备)
    • 新加坡 B:nav.sg-b-light-edge.com(主)、nav-b.sg-b-light-edge.com(备)
    • 北美:nav.us-light-edge.com(主)、nav-b.us-light-edge.com(备)
    • 沙特:nav.sau-light-edge.com(主)、nav-b.sau-light-edge.com (备)
  • 统计服务器地址(statisticServer)
    • 新加坡:stats.sg-light-edge.com
    • 新加坡 B:stats.sg-b-light-edge.com
    • 北美:stats.us-light-edge.com
    • 沙特:stats.sau-light-edge.com
uni-app​
提示

仅适用于 5.2.4 及之后版本。暂不支持通过区域码方式配置数据中心。

在 SDK 引擎配置中,写入海外数据中心的导航服务器地址和统计服务器地址:

typescript
let options = { naviServer: '配置的导航地址' }
let options = { statisticServer: '配置的统计服务器' }
let engine = await RCIMIWEngine.create(appKey, options);
  • 导航服务器地址(naviServer)
    • 新加坡:nav.sg-light-edge.com(主)、nav-b.sg-light-edge.com(备)
    • 新加坡 B:nav.sg-b-light-edge.com(主)、nav-b.sg-b-light-edge.com(备)
    • 北美:nav.us-light-edge.com(主)、nav-b.us-light-edge.com(备)
    • 沙特:nav.sau-light-edge.com(主)、nav-b.sau-light-edge.com (备)
  • 统计服务器地址(statisticServer)
    • 新加坡:stats.sg-light-edge.com
    • 新加坡 B:stats.sg-b-light-edge.com
    • 北美:stats.us-light-edge.com
    • 沙特:stats.sau-light-edge.com
React Native​

重要

仅适用于 5.2.4 及之后版本。暂不支持通过区域码方式配置数据中心。

在 SDK 引擎配置中,写入海外数据中心的导航服务器地址和统计服务器地址:

typescript
let options: RCIMIWEngineOptions = {};
let options: RCIMIWEngineOptions = {naviServer: '配置的导航地址'};
let options: RCIMIWEngineOptions = {statisticServer: '配置的统计服务器'};
let engine: RCIMIWEngine = RCIMIWEngine.create(appkey, options);
  • 导航服务器地址(naviServer)
    • 新加坡:nav.sg-light-edge.com(主)、nav-b.sg-light-edge.com(备)
    • 新加坡 B:nav.sg-b-light-edge.com(主)、nav-b.sg-b-light-edge.com(备)
    • 北美:nav.us-light-edge.com(主)、nav-b.us-light-edge.com(备)
    • 沙特:nav.sau-light-edge.com(主)、nav-b.sau-light-edge.com (备)
  • 统计服务器地址(statisticServer)
    • 新加坡:stats.sg-light-edge.com
    • 新加坡 B:stats.sg-b-light-edge.com
    • 北美:stats.us-light-edge.com
    • 沙特:stats.sau-light-edge.com
Unity​
提示

仅适用于 5.2.4 及之后版本。暂不支持通过区域码方式配置数据中心。

在 SDK 引擎配置中,写入海外数据中心的导航服务器地址和统计服务器地址:

C #
RCIMEngineOptions options = new RCIMEngineOptions();
options.naviServer = "配置的导航地址";
options.statisticServer = "配置的统计服务器";
RCIMEngine engine = RCIMEngine.create(appkey, options);
  • 导航服务器地址(naviServer)
    • 新加坡:nav.sg-light-edge.com(主)、nav-b.sg-light-edge.com(备)
    • 新加坡 B:nav.sg-b-light-edge.com(主)、nav-b.sg-b-light-edge.com(备)
    • 北美:nav.us-light-edge.com(主)、nav-b.us-light-edge.com(备)
    • 沙特:nav.sau-light-edge.com(主)、nav-b.sau-light-edge.com (备)
  • 统计服务器地址(statisticServer)
    • 新加坡:stats.sg-light-edge.com
    • 新加坡 B:stats.sg-b-light-edge.com
    • 北美:stats.us-light-edge.com
    • 沙特:stats.sau-light-edge.com

使用服务端 API 海外地址​

提示

App Key 所属的数据中心必须与 Server API 使用的数据中心保持一致。

应用如果使用海外数据中心,在应用服务器调用融云服务端 API 时,应连接融云海外数据中心 API 地址:

融云海外数据中心域名:

  • 新加坡:api.sg-light-api.com(主)、api-b.sg-light-api.com(备)
  • 新加坡 B:api.sg-b-light-api.com(主)、api-b.sg-b-light-api.com(备)
  • 北美:api.us-light-api.com(主)、api-b.us-light-api.com(备)
  • 沙特:api.sau-light-api.com(主)、api-b.sau-light-api.com (备)

代码示例:

HTTP
POST /user/getToken.json HTTP/1.1
Host: api.sg-light-api.com(主)、
api-b.sg-light-api.com(备)
App-Key: uwd1c0sxdlx2
Nonce: 14314
Timestamp: 1408710653491
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/x-www-form-urlencoded

userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg

海外专属功能​

针对使用海外数据中心的应用,融云客户端 SDK 提供了以下功能,以更好地服务海外用户:

  • Android 端支持 FCM 推送
  • iOS 端支持使用 iOS CallKit 实现 VoIP 推送,满足音视频场景呼叫来电提示功能。

海外接入节点​

适用于 IM 业务和 RTC 信令业务。

海外接入节点位于全球 100 多个位置。正在投入使用的入网点组合可能会发生更改,恕不另行通知。由于可能会发生设备维护、设备故障、推出新的入网点、移除旧的入网点以及其他事件,因此以下列表可能无法准确反映目前正在使用的入网点。

以下许多城市中均有多个入网点来支持服务需求。

  1. 北美洲

    弗吉尼亚州阿什本、佐治亚州亚特兰大、南卡罗来纳州查尔斯顿、伊利诺伊州芝加哥、爱荷华州康瑟布拉夫斯、德克萨斯州达拉斯/沃思堡、科罗拉多州丹佛、内华达州拉斯维加斯、北卡罗来纳州勒努瓦、加利福尼亚州洛杉矶、佛罗里达州迈阿密、加拿大魁北克省蒙特利尔、纽约州纽约市、墨西哥克雷塔罗、犹他州盐湖城、加利福尼亚州旧金山、华盛顿州西雅图、俄勒冈州达尔斯、加拿大安大略省多伦多、俄克拉荷马州塔尔萨

  2. 南美洲

    哥伦比亚波哥大、阿根廷布宜诺斯艾利斯、巴西里约热内卢、智利圣地亚哥、巴西圣保罗

  3. 欧洲

    荷兰阿姆斯特丹、匈牙利布达佩斯、爱尔兰都柏林、德国法兰克福、荷兰格罗宁根、德国汉堡、芬兰哈米纳、芬兰赫尔辛基、英国伦敦、西班牙马德里、法国马塞、意大利米兰、德国慕尼黑、法国巴黎、捷克布拉格、保加利亚索非亚、比利时圣吉斯兰、瑞典斯德哥尔摩、波兰华沙、瑞士苏黎世

  4. 中东

    阿拉伯联合酋长国富查伊拉、阿曼马斯喀特

  5. 亚太地区

    中国台湾彰化县、印度金奈、中国香港特别行政区、印度尼西亚雅加达、马来西亚吉隆坡、印度孟买、德里(印度)、日本大阪、韩国首尔、新加坡、中国台湾台北、日本东京

  6. 大洋洲

    澳大利亚悉尼、澳大利亚墨尔本

  7. 非洲

    南非约翰内斯堡、尼日利亚拉戈斯、肯尼亚蒙巴萨