You need to enable JavaScript to run this app.
导航

实现网络分析(iOS)

最近更新时间2024.02.20 10:53:40

首次发布时间2023.04.28 09:58:14

本文档介绍如何通过 GNA iOS SDK 实现网络分析。网络分析分为玩家自助网络分析和游戏对局网络分析。

  • 玩家自助网络分析:您可以在游戏中开发自助分析页面。玩家在感知到游戏卡顿时,可以进入自助分析页面开始网络分析。开始之后,SDK 会向您设置的目标地址发送网络分析请求。网络分析结束后,用户可以在自助分析页面获取分析结果。
  • 游戏对局网络分析:玩家开始游戏对局时,如果网络发生跳变,SDK 会自动向您设置的目标地址发送网络分析请求。网络分析结束后,游戏运维人员可以通过控制台获取分析结果。

您可以参见 工作原理 了解火山引擎游戏网络加速(GNA)如何对玩家的网络进行分析。

前提条件

您已经导入和初始化了 GNA iOS SDK

实现步骤

实现玩家自助分析

参见以下步骤实现玩家自助分析。您可以参见 SDK 参考 了解 SDK 的详细信息。

  1. 导入以下头文件。

    #import <GameSdkNetworkManager/TTNetDiagnosisService.h>
    
  2. 调用 createRequestWithRequestParams 方法创建自助分析请求。

    // 设置请求参数
    // 把请求类型设置为网络分析
    TTNetDiagnosisRequestParams *diagnosisRequestParams = [TTNetDiagnosisRequestParams new];
    // 把请求类型设置为网络分析
    diagnosisRequestParams.requestType = DIAGNOSE_TARGET;
    // 指定分析目标地址。可以是域名或 IPv4 地址。目前您只能传入一个目标地址。
    diagnosisRequestParams.targets = @[@"www.volcengine.com"];
    // 地址特征,用于网络分析的地址调度功能。您需要联系我们使用该功能。如果您不需要使用地址调度功能,可设置为 @""。
    diagnosisRequestParams.dispatchFeature = @"";
    // 一般情况下,您可以设置为 0
    diagnosisRequestParams.detectType = 0;
    // 超时时间。您可以设置为 15 秒
    diagnosisRequestParams.timeoutMs = 15000;
    
    // 创建分析请求NSObject
    [[TTNetDiagnosisService shareInstance] createRequestWithRequestParams:diagnosisRequestParams
                                                                    callback:^(NSString *report) {
                                                                        NSLog(@"诊断接口回调: %@", report);
                                                                    }];
    
  3. 调用 start 方法开始自助分析。开始之后,SDK 会向您设置的目标地址发送网络分析请求。您还可以通过 setUserExtraInfo 方法为分析请求添加附加信息。自助分析结束后,您可以通过 createRequestWithRequestParams 方法中的 callback 参数中的回调函数获取分析结果。另外,您也可以在控制台 查看统计数据

    // 开始分析
    [request start];
    
    // 您还可以为分析请求添加附加信息,例如玩家的用户 ID。
    // 这样您在查看分析结果时,就可以按玩家的用户 ID 对分析结果进行分类统计
    [request setUserExtraInfo:@"player_id"];
    

自助分析会在完成后自动结束。如果,自助分析页面需要支持玩家取消自助分析。您可以调用 cancel 取消自助分析。

// 取消分析
[request cancel];

实现游戏对局网络分析

玩家开始游戏对局时,如果网络发生跳变,SDK 会自动进行网络分析并向玩家或游戏运维人员返回分析结果。
您可以参见以下步骤实现游戏对局网络分析。

  1. 导入以下头文件。

    #import <GameSdkNetworkManager/TTGameDiagnosisService.h>
    
  2. 游戏对局开始时,调用 monitorBegin 方法开启游戏对局网络分析。当网络发生跳变时,SDK 会自动向您设置的目标地址发送网络分析请求。您可以在控制台 查看统计数据

    TTGameMonitorBeginParams *monitorBeginParams = [TTGameMonitorBeginParams new];
    // 指定分析目标地址。可以是域名或 IPv4 地址
    monitorBeginParams.target = @"www.volcengine.com";
    // 地址特征,用于网络分析的地址调度功能。您需要联系我们使用该功能。如果您不需要使用地址调度功能,可设置为 @""。
    monitorBeginParams.dispatchFeature = @"";
    // 您还可以为分析请求添加附加信息,例如玩家的用户 ID。
    monitorBeginParams.extraInfo = @"monitor begin user info";
    // 获取报告的回调
    monitorBeginParams.reportCallback = ^(NSString *report) { NSLog(@"diagnosis v2 report: %@", report); };
    [[TTGameDiagnosisService shareInstance] monitorBeginWithParams:monitorBeginParams];
    
  3. 在游戏对局过程中,您也可以主动调用 doDiagnosisDuringGaming 方法向您在 monitorBegin 方法中设置的目标地址发送网络分析请求。您可以在控制台 查看统计数据

    NSString* reason = @"movelag"; 
    [[TTGameDiagnosisService shareInstance] doDiagnosisDuringGaming:reason];
    
  4. 对局游戏结束时,调用 monitorEnd 方法关闭对局分析。

    [[TTGameDiagnosisService shareInstance] monitorEnd];
    

接下来您可以

查看统计数据