融云海外数据中心使用指南

即时通讯 IM 提供了中国(北京)、东南亚(新加坡)、以及北美(俄勒冈)数据中心供选择,助力出海业务。

如果您的应用在海外上线且用户主要在海外,您可以根据消息传输需求及合规要求,选择适合您业务的海外数据中心。海外数据中心资费参见:

本文将介绍融云海外数据中心的使用指南及相关说明。

创建海外数据中心应用

  1. 打开融云控制台 应用管理 页面。

  2. 单击创建应用。您将在创建应用的弹窗中选择数据中心。

  3. 创建应用对话框中输入您的应用名称、应用简介、应用类型、运营阶段、数据中心
    iShot_2024-03-13_10.19.33

    :tipping_hand_man: 应用创建后,数据中心不可修改,请谨慎选择。暂不支持直接选择北美数据中心。如果您的业务位于海外,建议优先考虑新加坡数据中心。如果您认为北美数据中心更符合您的业务需求,请提交工单申请。融云将联系您进行业务评估,并建议合理的解决方案。

海外数据中心集成客户端 SDK

IM SDK 在不同数据中心通用,开发者可根据自己的业务需求场景以及技术栈进行评估,选择合适的 SDK。

通过区域码方式配置

什么是区域码

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

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

如何使用和配置区域码

:point_up: 首先,请务必先确认您当前的 App Key 所属的数据中心。融云海外业务提供新加坡、新加坡 B、北美、沙特等多个数据中心。


您可以在融云控制台首页核验应用名称、环境、App Key 和所属数据中心。


:point_up: 确认 App Key 所属的数据中心后,请根据当前项目中的 OS 平台与 SDK 版本,选择使用区域码方式配置,或使用手动方式配置海外数据中心的相关域名。


:white_check_mark: 仅以下平台和版本的 SDK 支持通过区域码方式直接配置海外数据中心:

  • Android 端 IMLib/IMKit:SDK ≧ 5.4.2

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

    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 (新加坡数据中心)。

    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 (新加坡数据中心)。

    // 应用初始化,请务必保证此过程只被执行一次
    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

适用于 5.4.2 之前版本。

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

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

    /**
    * 设置 海外 数据中心的导航服务器和媒体服务器地址。
    * 此方法要在 {@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);
    }
    
  2. 使用 setStatisticDomain 方法设置统计服务地址:

iOS

适用于 5.4.2 之前版本。

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

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

    /*!
    设置 海外 数据中心导航服务器和上传文件服务器信息
    @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;
    
  2. 使用 setStatisticServer 方法设置统计服务地址:

    /**
     设置统计服务器的信息
    
     @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;
    

Web

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

// 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'] });

小程序

暂不支持。

Flutter

仅适用于 5.2.4 及之后版本。

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

RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
options.naviServer = '配置的导航地址';
options.statisticServer = '配置的统计服务器';
RCIMIWEngine engine = await RCIMIWEngine.create(appKey, options);

uni-app

仅适用于 5.2.4 及之后版本。

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

let options = { naviServer: '配置的导航地址' }
let options = { statisticServer: '配置的统计服务器' }
let engine = await RCIMIWEngine.create(appKey, options);

React Native

仅适用于 5.2.4 及之后版本。

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

let options: RCIMIWEngineOptions = {};
let options: RCIMIWEngineOptions = {naviServer: '配置的导航地址'};
let options: RCIMIWEngineOptions = {statisticServer: '配置的统计服务器'};
let engine: RCIMIWEngine = RCIMIWEngine.create(appkey, options);

Unity

仅适用于 5.2.4 及之后版本。

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

RCIMEngineOptions options = new RCIMEngineOptions();
options.naviServer = "配置的导航地址";
options.statisticServer = "配置的统计服务器";
RCIMEngine engine = RCIMEngine.create(appkey, options);

海外数据中心服务端 API 配置

您在调用 服务端 API 时,请求的域名请根据应用创建的数据中心配置,不同数据中心的域名如下:

融云海外数据中心域名

海外接入节点

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

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

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

北美洲

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

南美洲

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

欧洲

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

中东

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

亚太地区

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

大洋洲

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

非洲

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

安全合规

应用在出海前须遵守当地数据保护法律法规,确保数据合规性,避免法律风险。 融云即时通讯 IM 提供了境外数据中心供选择,数据不回国。您的业务数据存储在创建应用时选择的数据中心,每个数据中心均支持全球接入。

包括不限于以下数据:

  • 用户资料(如昵称、头像字段等)
  • 群组相关(群名称、群成员等)
  • 消息相关(文本、图片、视频、语音、文件、自定义消息等)