tencent cloud

文档反馈

Android&iOS&Windows&Mac

最后更新时间:2023-05-31 11:30:58
    普通用户很难评估网络质量,建议您在进行视频通话之前先进行网络测试,通过测速可以更直观地评估网络质量。

    注意事项

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

    支持的平台

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

    测速的原理

    
    
    
    测速的原理是 SDK 向服务器节点发送一批探测包,然后统计回包的质量,并将测速的结果通过回调接口通知出来。
    测速的结果将会用于优化 SDK 接下来的服务器选择策略,因此推荐您在用户首次通话前先进行一次测速,这将有助于我们选择最佳的服务器。同时,如果测试结果非常不理想,您可以通过醒目的 UI 提示用户选择更好的网络。
    测速的结果(TRTCSpeedTestResult)包含如下几个字段:
    字段
    含义
    含义说明
    success
    是否成功
    本次测试是否成功
    errMsg
    错误信息
    带宽测试的详细错误信息
    ip
    服务器 IP
    测速服务器的 IP
    网络质量评分
    通过评估算法测算出的网络质量,loss 越低,rtt 越小,得分也就越高
    upLostRate
    上行丢包率
    范围是[0 - 1.0],例如0.3代表每向服务器发送10个数据包,可能有3个会在中途丢失
    downLostRate
    下行丢包率
    范围是[0 - 1.0],例如0.2代表从服务器每收取10个数据包,可能有2个会在中途丢失
    rtt
    网络延时
    代表 SDK 跟服务器一来一回之间所消耗的时间,这个值越小越好,正常数值在 10ms - 100ms 之间
    availableUpBandwidth
    上行带宽
    预测的上行带宽,单位为kbps, -1表示无效值
    availableDownBandwidth
    下行带宽
    预测的下行带宽,单位为kbps, -1表示无效值

    如何测速

    通过 TRTCCloud 的 startSpeedTest 功能可以启动测速功能,测速的结果会通过回调函数返回。
    Objective-C
    Java
    C++
    C#
    // 启动网络测速的示例代码, 需要 sdkAppId 和 UserSig,(获取方式参考基本功能)
    // 这里以登录后开始测试为例
    - (void)onLogin:(NSString *)userId userSig:(NSString *)userSid
    {
    TRTCSpeedTestParams *params;
    // sdkAppID 为控制台中获取的实际应用的 AppID
    params.sdkAppID = sdkAppId;
    params.userID = userId;
    params.userSig = userSig;
    // 预期的上行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)
    params.expectedUpBandwidth = 5000;
    // 预期的下行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)
    params.expectedDownBandwidth = 5000;
    [trtcCloud startSpeedTest:params];
    }
    - (void)onSpeedTestResult:(TRTCSpeedTestResult *)result {
    // 测速完成后,会回调出测速结果
    }
    
    //启动网络测速的示例代码, 需要 sdkAppId 和 UserSig,(获取方式参考基本功能)
    // 这里以登录后开始测试为例
    public void onLogin(String userId, String userSig)
    {
    TRTCCloudDef.TRTCSpeedTestParams params = new TRTCCloudDef.TRTCSpeedTestParams();
    params.sdkAppId = GenerateTestUserSig.SDKAPPID;
    params.userId = mEtUserId.getText().toString();
    params.userSig = GenerateTestUserSig.genTestUserSig(params.userId);
    params.expectedUpBandwidth = Integer.parseInt(expectUpBandwidthStr);
    params.expectedDownBandwidth = Integer.parseInt(expectDownBandwidthStr);
    // sdkAppID 为控制台中获取的实际应用的 AppID
    trtcCloud.startSpeedTest(params);
    }
    
    // 监听测速结果,继承 TRTCCloudListener 并实现如下方法
    void onSpeedTestResult(TRTCCloudDef.TRTCSpeedTestResult result)
    {
    // 测速完成后,会回调出测速结果
    }
    
    // 启动网络测速的示例代码, 需要 sdkAppId 和 UserSig,(获取方式参考基本功能)
    // 这里以登录后开始测试为例
    void onLogin(const char* userId, const char* userSig)
    {
    TRTCSpeedTestParams params;
    // sdkAppID 为控制台中获取的实际应用的 AppID
    params.sdkAppID = sdkAppId;
    params.userId = userid;
    param.userSig = userSig;
    // 预期的上行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)
    param.expectedUpBandwidth = 5000;
    // 预期的下行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)
    param.expectedDownBandwidth = 5000;
    trtcCloud->startSpeedTest(params);
    }
    
    // 监听测速结果
    void TRTCCloudCallbackImpl::onSpeedTestResult(
    const TRTCSpeedTestResult& result)
    {
    // 测速完成后,会回调出测速结果
    }
    
    // 启动网络测速的示例代码, 需要 sdkAppId 和 UserSig,(获取方式参考基本功能)
    // 这里以登录后开始测试为例
    private void onLogin(string userId, string userSig)
    {
    TRTCSpeedTestParams params;
    // sdkAppID 为控制台中获取的实际应用的 AppID
    params.sdkAppID = sdkAppId;
    params.userId = userid;
    param.userSig = userSig;
    // 预期的上行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)
    param.expectedUpBandwidth = 5000;
    // 预期的下行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)
    param.expectedDownBandwidth = 5000;
    mTRTCCloud.startSpeedTest(params);
    }
    
    // 监听测速结果
    public void onSpeedTestResult(TRTCSpeedTestResult result)
    {
    // 测速完成后,会回调出测速结果
    }
    

    测速工具

    如果您不想通过调用接口的方式来进行网络测速,TRTC 还提供了桌面端的网络测速工具程序,帮助您快速获取详细的网络质量信息。

    下载链接

    测试指标

    指标
    含义
    WiFi Quality
    Wi-Fi 信号质量
    DNS RTT
    腾讯云的测速域名解析耗时
    MTR
    MTR 是一款网络测试工具,能探测客户端到 TRTC 节点的丢包率与延时,还可以查看路由中每一跳的具体信息
    UDP Loss
    客户端到 TRTC 节点的 UDP 丢包率
    UDP RTT
    客户端到 TRTC 节点的 UDP 延时
    Local RTT
    客户端到本地网关的延时
    Upload
    上行预估带宽
    Download
    下行预估带宽

    工具截图

    快速测试:
    
    
    持续测试:
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持