跳到主要内容

MTR上报

1.说明

用于进行APP的MTR网络数据收集上报,游戏需要主动调用MTR接口用于上报,可在游戏内提供MTR按钮供玩家主动点击上报。

2.代码调用

2.1 导入头文件

#import "DHLog.h"

2.2 初始化日志SDK(仅限单独接入日志SDK时需要)

信息

该方法仅限单独接入日志SDK(DHLog)时需要接入,如果已经接入了官方集成SDK,比如DHUnionSDK,则不需要接入该方法

信息

注意:以下示例参数仅供参考,具体接入时需要和官方SDK方沟通获取

在XCode工程 AppDelegate类的application:didFinishLaunchingWithOptions中初始化日志SDK

 - (BOOL)application:(UIApplication *)application didFishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.

//日志SDK初始化和配置
[DHLog startWithAppId:@"123456789"];//配置SDK APPID
[DHLog sharedInstance].version =@"1.0";//APP版本号
[DHLog sharedInstance].channelVersion = @"1.0";//APP渠道版本号,如果没有就填APP版本号
[DHLog sharedInstance].logChannel = DHLogChannelDH; //默认普通SDK模式
[DHLog sharedInstance].channel = @"1587";//游戏渠道id
[DHLog sharedInstance].mainChannel = @"1000041";//主渠道ID
[DHLog sharedInstance].secondChannel = @"1000042";//次渠道ID
//应用启动上传所有发送失败的日志
[DHLog postAllLogs];

return YES;
}

2.3 调用MTR接口

游戏内提供MTR上报按钮,用户点击按钮后,调用SDK的MTR收集上报流程,该流程是异步的,不影响游戏运行,不过需要一定时间来收集,可以提醒玩家等待

DHLogTraceRouteParam *param = [[DHLogTraceRouteParam alloc] init];
param.host = @"www.baidu.com"; //测试访问的域名,游戏传入
param.ttl = 0;//可以传0或者不传,会使用默认值
param.count = 0;//可以传0或者不传,会使用默认值
param.timeout = 0;//可以传0或者不传,会使用默认值
param.userId = @"11322123"; //SDK账号accountid
param.areaId = @"100"; //游戏大区id

[DHLog sharedInstance].chinaMode = NO; //国内上报,设置YES,海外上报,设置为NO

[DHLog startTraceRoute:param handler:^(DHTraceRouteType type, NSString *tracertRes, NSString *destIp, NSArray *result) {
if(type == DHTraceRouteTypeChecking){
//mtr中间路径每个域名节点的分析数据返回
NSLog(@"traceroute信息:%@,最终目标ip:%@",tracertRes,destIp);
}
else if (type == DHTraceRouteTypeDone){
//检查结束,输出最终记录,SDK会自行上报,游戏也可以拿来使用
NSLog(@"traceroute输出结束");
for(NSString *str in result){
NSLog(@"==%@",str);
}
}
else if (type == DHTraceRouteTypeError){
NSLog(@"traceroute失败");
}
}];

2.4 参数说明

iOSMTR上报必传参数

名称类型含义是否必须
paramDHLogTraceRouteParam上传参数model,详情如下
handlerDHLogTraceRouteHandlerMTR上传回调通知方法

DHLogTraceRouteParam参数

名称类型含义是否必须
hostNSStringMTR访问的域名,需要游戏传入指定域名去访问测试
ttlIntMTR最大尝试次数,太少可能无法访问到目标域名节点,不设置的话使用默认值
countIntMTR路径每个节点ping 毫秒的次数,越多的话越准确,但是耗时越长,不设置的话使用默认值
timeoutIntMTR路径节点访问超时时间,单位毫秒,不设置的话使用默认值
userIdNSStringSDK账号ID
areaIdNSString游戏大区ID

DHLogTraceRouteHandler参数

参数名称参数类型参数说明
typeDHTraceRouteTypeMTR访问返回数据类型,DHTraceRouteTypeChecking:当mtr每次访问结束一个路径节点域名时会触发返回DHTraceRouteTypeDone:当MTR测试完全结束时返回DHTraceRouteTypeError:当MTR请求失败时返回
tracertResNSString当type为DHTraceRouteTypeChecking时有值,返回当前访问域名节点具体分析信
destIpNSString当type为DHTraceRouteTypeChecking时有值,返回最终访问域名的ip
resultNSArray当type为DHTraceRouteTypeDone时有值,返回所有分析的数据