跳到主要内容

引擎配置

IM 引擎提供以下配置,可按需修改。配置必须在初始化时提供。

数据中心配置​

如果您的应用不使用中国国内数据中心(例如使用海外数据中心,或者使用私有部署),必须在初始化之前修改 IMLib SDK 连接的服务地址为对应数据中心地址。否则 SDK 默认连接中国国内数据中心服务地址。

使用海外数据中心的详细说明请参见配置海外数据中心服务地址。

导航地址配置​

私有部署的导航服务器地址,naviServer 必须为有效的服务器地址。默认不需要配置,如需配置,请联系商务。

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
options.naviServer = '配置的导航地址';

媒体服务配置​

私有部署的媒体服务器地址,即文件和图片的上传地址。默认不需要配置,如需配置,请联系商务。

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
options.fileServer = '配置的文件服务地址';

配置统计服务器的信息​

设置统计服务器的信息,仅限独立数据中心使用。默认不需要配置,如需配置,请联系商务。

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 权限)

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
options.statisticServer = '配置的统计服务器';

推送配置​

推送是常见的基础功能。IMLib SDK 已集成融云自有推送,以及多家第三方推送,且会在 SDK 初始化后触发。因此,客户端的推送配置必须在初始化之前提供。详细说明请参见启用推送。

Android 推送信息配置​

开发者在使用 Android 推送时,需要配置下面信息。

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
RCIMIWPushOptions pushOptions = RCIMIWPushOptions.create(
idMI: '',
appKeyMI: '',
appIdMeizu: '',
appKeyMeizu: '',
appKeyOPPO: '',
appSecretOPPO: '',
enableHWPush: true,
enableFCM: true,
enableVIVOPush: true,
);
options.pushOptions = pushOptions;

是否踢出当前正在重连的设备​

用户级别配置,可按需设置。设置断线重连时是否踢出当前正在重连的设备。要求 App Key 已开通用户级别配置。详见重连机制与重连互踢。

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
options.kickReconnectDevice = true;

压缩策略配置​

开发者可以自行配置 SDK 在发送图片、小视频时原始数据和缩略图的压缩配置

参数说明

参数名类型描述
originalImageQualityint原图压缩比
originalImageMaxSizeint原图最长边的最大宽度
originalImageSizeint原图大小限制 配置发送图片时,如果图片大小不超过则发送原图
thumbnailQualityint缩略图压缩比例
thumbnailMaxSizeint缩略图压缩宽、高
thumbnailMinSizeint缩略图压缩最小宽、高
sightCompressHeightint小视频压缩高度,建议使用16的倍数
sightCompressWidthint小视频压缩宽度,建议使用16的倍数
locationThumbnailQualityint位置消息缩略图压缩比例
locationThumbnailWidthint位置消息压缩的宽度
locationThumbnailHeightint位置消息压缩的高度

代码示例

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
RCIMIWCompressOptions compressOptions = RCIMIWCompressOptions.create(
originalImageQuality: 80,
originalImageMaxSize: 1080,
originalImageSize: 200,
thumbnailQuality: 80,
thumbnailMaxSize: 500,
thumbnailMinSize: 200,
sightCompressHeight: 160,
sightCompressWidth: 160,
);
options.compressOptions = compressOptions;

Crash 监控配置​

融云 SDK 内置 Crash(崩溃)监控,默认开启。App 运行期间发生崩溃时,SDK 会捕获崩溃事件,并将崩溃信息连同设备与应用环境信息上报融云服务器。融云据此分析崩溃原因、适配兼容性问题并持续优化 SDK 的稳定性;当您的应用出现崩溃并向融云提交工单时,融云可以基于上报的信息检索对应的崩溃记录,更快地定位问题。

通过 RCIMIWEngineOptions.crashMonitorEnable 配置该监控的开关。该配置必须在创建 IM 引擎时提供。

收集的信息与用途​

Crash 监控收集的信息属于 SDK 隐私政策 中已列明的采集范围,均在崩溃发生时采集,并采用加密方式传输:

信息内容用途
崩溃信息崩溃事件的日志数据、接口调用的错误码、连接失败的错误码还原崩溃发生时 SDK 的运行状态,对崩溃问题进行故障排查
设备信息设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况区分不同的设备与系统环境,确认崩溃是否与特定机型相关并进行兼容适配
应用信息App Key、App 版本号、融云 SDK 版本号确认崩溃对应的 App 与 SDK 版本,用于定位问题版本并在后续版本中修复
用户标识App Key 下的用户 ID标识发生崩溃的用户,便于检索该用户的崩溃记录并排查问题

完整的信息清单及处理规则以 SDK 隐私政策 为准。

何时需要关闭​

  • App 已接入第三方崩溃收集服务(如 Bugly、Firebase Crashlytics、友盟等),希望统一由自有服务收集,避免重复上报。
  • 出于数据合规要求,需要最小化数据收集。

配置说明​

属性名属性类型描述
crashMonitorEnablebool?true 表示开启 Crash 监控,false 表示关闭。仅 iOS 生效;未设置或传 null 时保持默认开启。Android 不支持该配置,传入值会被忽略。

监控默认开启,无需任何配置即可生效;仅在需要关闭时按下例设置。

以下示例关闭 iOS Crash 监控。需要开启时,将 crashMonitorEnable 设置为 true。

Dart
RCIMIWEngineOptions options = RCIMIWEngineOptions.create();
options.crashMonitorEnable = false;

RCIMIWEngine engine = await RCIMIWEngine.create(appKey, options);

注意事项​

  • 关闭 Crash 监控后,融云不再收集该设备上的崩溃信息,您向融云反馈崩溃问题时可依据的信息会减少,请谨慎关闭。
  • 关闭 Crash 监控仅停止崩溃事件的捕获与上报,不影响 SDK 为提供基础服务而进行的必要信息采集。
  • 该能力依赖 iOS 端原生 IMLib SDK(5.6.6 Dev 及以上版本)。