通话前网络测速

最后更新时间:2021-09-17 12:13:06

    普通用户很难评估网络质量,建议您在进行视频通话之前先进行网络测试,通过测速可以更直观地评估网络质量。

    注意事项

    • 视频通话期间请勿测试,以免影响通话质量。
    • 测速本身会消耗一定的流量,从而产生极少量额外的流量费用(基本可以忽略)。

    支持的平台

    iOS Android Mac OS Windows Electron Web 端
    ✓ 参考:Web 端教程

    测速的原理

    • 测速的原理是 SDK 向服务器节点发送一批探测包,然后统计回包的质量,并将测速的结果通过回调接口通知出来。
    • 测速的结果将会用于优化 SDK 接下来的服务器选择策略,因此推荐您在用户首次通话前先进行一次测速,这将有助于我们选择最佳的服务器。同时,如果测试结果非常不理想,您可以通过醒目的 UI 提示用户选择更好的网络。
    • 由于 SDK 同时可以连接的云端服务器通常有超过三个以上的节点,测试过程是一台接一台串联进行的,所以测速结果的返回值会分多次回调通知出来。
    • 测速的结果(TRTCSpeedTestResult)包含如下几个字段:
      字段含义含义说明
      ip 服务器 IP 测速结果会回调多次,每次对应一个不同的 IP 地址
      quality 网络质量评分 通过评估算法测算出的网络质量,loss 越低,rtt 越小,得分也就越高
      upLostRate 上行丢包率 范围是[0 - 1.0],例如0.3代表每向服务器发送10个数据包,可能有3个会在中途丢失
      downLostRate 下行丢包率 范围是[0 - 1.0],例如0.2代表从服务器每收取10个数据包,可能有2个会在中途丢失
      rtt 网络延时 代表 SDK 跟服务器一来一回之间所消耗的时间,这个值越小越好,正常数值在 10ms - 100ms 之间

    如何测速

    通过 TRTCCloud 的 startSpeedTest 功能可以启动测速功能,测速的结果会通过回调函数,每隔1~2秒回调一次,每次回调都包含 SDK 到一个云服务器节点的测速结果,回调次数取决于 SDK 一共访问了多少台云服务器。

    // 启动网络测速的示例代码, 需要 sdkAppId 和 UserSig,(获取方式参考基本功能)
    // 这里以登录后开始测试为例
    - (void)onLogin:(NSString *)userId userSig:(NSString *)userSid
    {
    // sdkAppID 为控制台中获取的实际应用的 AppID
    [trtcCloud startSpeedTest:SDKAppID
    userId:userId
    userSig:userSig
    completion:^(TRTCSpeedTestResult *result, NSInteger completedCount, NSInteger totalCount) {
    NSLog(@"速度测试(第%d次/共%d次) %@", (int)completedCount, (int)totalCount, result);
    }];
    }