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上报必传参数
名称 | 类型 | 含义 | 是否必须 |
---|---|---|---|
param | DHLogTraceRouteParam | 上传参数model,详情如下 | 是 |
handler | DHLogTraceRouteHandler | MTR上传回调通知方法 | 是 |
DHLogTraceRouteParam参数
名称 | 类型 | 含义 | 是否必须 |
---|---|---|---|
host | NSString | MTR访问的域名,需要游戏传入指定域名去访问测试 | 是 |
ttl | Int | MTR最大尝试次数,太少可能无法访问到目标域名节点,不设置的话使用默认值 | 否 |
count | Int | MTR路径每个节点ping 毫秒的次数,越多的话越准确,但是耗时越长,不设置的话使用默认值 | 否 |
timeout | Int | MTR路径节点访问超时时间,单位毫秒,不设置的话使用默认值 | 否 |
userId | NSString | SDK账号ID | 是 |
areaId | NSString | 游戏大区ID | 是 |
DHLogTraceRouteHandler参数
参数名称 | 参数类型 | 参数说明 |
---|---|---|
type | DHTraceRouteType | MTR访问返回数据类型,DHTraceRouteTypeChecking:当mtr每次访问结束一个路径节点域名时会触发返回DHTraceRouteTypeDone:当MTR测试完全结束时返回DHTraceRouteTypeError:当MTR请求失败时返回 |
tracertRes | NSString | 当type为DHTraceRouteTypeChecking时有值,返回当前访问域名节点具体分析信 |
destIp | NSString | 当type为DHTraceRouteTypeChecking时有值,返回最终访问域名的ip |
result | NSArray | 当type为DHTraceRouteTypeDone时有值,返回所有分析的数据 |