本文档介绍 GNA iOS SDK 的参考信息。
头文件: <GameSdkNetworkManager/GameSdkNetworkManager.h>
包含 SDK 初始化所需的参数和方法。
@interface GameSdkNetworkManager : NSObject @property(nonatomic, copy)NSDictionary * commonParams; @property(atomic, copy)TTNetworkManagerCommonParamsBlock commonParamsblock; @property (nonatomic, assign) bool enableVerboseLog; typedef void (^Monitorblock)(NSDictionary*, NSString*); + (void)setMonitorBlock:(Monitorblock)block; + (Monitorblock)MonitorBlock; + (instancetype)shareInstance; - (BOOL)ensureEngineStarted; - (void *)getEngine; - (void)start; @end
属性 | 描述 |
---|---|
commonParams | SDK 的初始化参数。您需要通过 |
commonParamsblock | 初始化参数 block。您需要在该 block 中对 |
enableVerboseLog | 是否开启 verbose 级别的日志。
|
Key | Value 描述 |
---|---|
device_id | 标识某一台设备的唯一 ID。仅支持除 0 之外的阿拉伯数字。您需要自行设置和管理 Device ID。建议您复用 App 中已有的用于标识用户设备的 ID。 |
aid | 标识您的 App 的唯一 ID。您需要从 GNA 控制台获取 App ID。您可以参见 获取 App ID 和 SDK 鉴权值 了解获取方法。 |
secret | SDK 鉴权值。您需要从 GNA 控制台获取 SDK 鉴权值。您可以参见 获取 App ID 和 SDK 鉴权值 了解获取方法。 |
device_platform | iOS 设备的平台类型,例如 |
成员方法 | 描述 |
---|---|
start | 初始化 GNA SDK。该方法是异步的。目前 iOS SDK 暂未提供初始化成功的回调。建议您尽早开始初始化。例如,您可以在 App 冷启动时开始初始化。 |
头文件: <GameSdkNetworkManager/TTNetDiagnosisService.h>
说明
该方法已废弃。建议您使用 createRequestWithRequestParams
方法。
创建玩家自助网络分析请求。
- (NSObject<TTNetDiagnosisRequestProtocol> *)createRequestWithReqestType:(TTNetExpRequestType)reqType target:(NSString *)target netDetectType:(TTNetExpNetDetectType)netDetectType multiNetAction:(TTNetExpMultiNetAction)multiNetAction timeoutMs:(int64_t)timeoutMs callback:(DiagnosisCallback)callback;
参数 | 说明 |
---|---|
reqType | 请求类型。你必须设置为 |
target | 网络分析的目标地址。可以是域名或 IPv4 地址。 |
netDetectType | 网络分析使用的请求类型。建议您设置为 0。 |
multiNetAction | 网络分析所适用的网络类型。建议您设置为 0。 |
timeoutMs | 网络分析使用的请求的超时时间(毫秒)。如果网络分析超时,会触发 |
callback | 当网络分析完成、被取消、因网络切换中止、超时或失败时触发的回调。参见 |
TTNetDiagnosisRequestProtocol
对象。
创建玩家自助网络分析请求。
- (NSObject <TTNetDiagnosisRequestProtocol> *)createRequestWithRequestParams:(TTNetDiagnosisRequestParams* _Nonnull)params callback:(DiagnosisCallback)callback;
参数 | 说明 |
---|---|
params | |
callback | 当网络分析完成、被取消、因网络切换中止、超时或失败时触发的回调。参见 |
TTNetDiagnosisRequestProtocol
对象。
自助网络分析请求参数。
@interface TTNetDiagnosisRequestParams : NSObject @property(nonatomic, assign) TTNetExpRequestType requestType; @property(nonatomic, strong) NSArray<NSString *> *targets; @property(nonatomic, strong) NSString *dispatchFeature; @property(nonatomic, assign) TTNetExpNetDetectType detectType; @property(nonatomic, assign) TTNetExpMultiNetAction multiNetAction; @property(nonatomic, assign) int64_t timeoutMs; @end
参数 | 说明 |
---|---|
requestType | 请求类型。你必须设置为 |
targets | 网络分析的目标地址。可以是域名或 IPv4 地址。目前,您只能传入一个目标地址。 |
dispatchFeature | 地址特征,用于网络分析的地址调度功能。您需要联系我们开启该功能。如果您不需要使用地址调度功能,可设置为 |
detectType | 网络分析使用的请求类型。建议您设置为 0。 |
multiNetAction | 网络分析所适用的网络类型。建议您设置为 0。 |
timeoutMs | 网络分析使用的请求的超时时间(毫秒)。如果网络分析超时,会触发 |
报告网络分析的结果。您需要实现该回调并在调用 createRequestWithReqestType
方法时传入该回调。当网络分析完成、被取消、因网络切换中止、超时或失败时,SDK 都会通过该回调返回结果。
typedef void (^DiagnosisCallback)(NSString* report);
参数 | 描述 |
---|---|
report | 网络分析的结果。 |
开始玩家自助网络分析。自助网络分析完成后,会触发 createRequestWithReqestType
方法中设置的回调。
- (void)start;
辅助描述信息。该信息会记录在分析报告里的 user_extra_info
字段。
- (void)setUserExtraInfo:(NSString*)extraInfo;
参数 | 描述 |
---|---|
extraInfo | 辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。 |
取消玩家自助网络分析。调用该方法会触发 createRequestWithReqestType
方法中设置的回调。
- (void)cancel;
头文件: <GameSdkNetworkManager/TTGameDiagnosisService.h>
说明
该方法已废弃。推荐您使用 monitorBeginWithParams
方法。
开始游戏对局网络分析。当玩家网络发生跳变时,SDK 会对从玩家客户端到您设置的目标地址之间的网络进行分析。
- (void)monitorBegin:(NSString* _Nonnull)target extraInfo:(NSString* _Nullable)extraInfo;
参数 | 描述 |
---|---|
target | 网络分析的目标地址,支持域名或 IPv4 地址。 |
extraInfo | 辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。 |
开始游戏对局网络分析。当玩家网络发生跳变时,SDK 会对从玩家客户端到您设置的目标地址之间的网络进行分析。
- (void)monitorBeginWithParams:(TTGameMonitorBeginParams *_Nonnull)params;
参数 | 描述 |
---|---|
params |
游戏对局网络分析参数。
interface TTGameMonitorBeginParams : NSObject @property(nonatomic, strong) NSString *target; @property(nonatomic, strong) NSString *dispatchFeature; @property(nonatomic, strong) NSString *extraInfo; @property(nonatomic, copy) DiagnosisCallback reportCallback; @end
参数 | 描述 |
---|---|
target | 网络分析的目标地址,支持域名或 IPv4 地址。 |
dispatchFeature | 地址特征,用于网络分析的地址调度功能。您需要联系我们开启该功能。如果您不需要使用地址调度功能,可设置为 |
extraInfo | 辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。 |
reportCallback | 当网络分析完成、被取消、因网络切换中止、超时或失败时触发的回调。参见 |
报告网络分析的结果。您需要实现该回调并在调用 monitorBeginWithParams
方法时传入该回调。当网络分析完成、被取消、因网络切换中止、超时或失败时,SDK 都会通过该回调返回结果。
typedef void (^DiagnosisCallback)(NSString* report);
参数 | 描述 |
---|---|
report | 网络分析的结果。 |
在游戏对局中,手动对从玩家客户端到您在 monitorBegin
方法中设置的目标地址之间的网络进行分析。
- (void)doDiagnosisDuringGaming:(nullable NSString*)extraMessage;
参数 | 描述 |
---|---|
extraMessage | 辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。 |
结束游戏对局网络分析。
- (void)monitorEnd:(nullable NSString*)extraInfo;
头文件: <GameSdkNetworkManager/TTNetMpaService.h>
注册网络加速所需的回调。
- (void)registerInitCallback:(ICallback)initCallback setAddrCallback:(ISetAddrCallback)setAddressCallback stopCallback:(ICallback)stopCallback;
参数 | 说明 |
---|---|
initCallback | 调用 |
setAddressCallback | 调用 |
stopCallback | 调用 |
注意
不要在回调函数中执行耗时操作。在回调函数中执行耗时操作会阻塞 GNA SDK 的内部线程。
该回调可用于:
initService
方法后触发的回调,用于报告初始化是否成功。该回调需要传入 registerInitCallback
方法的 initCallback
参数。stop
方法后触发的回调,用于报告加速是否成功。该回调需要传入 registerInitCallback
方法的 stopCallback
参数。typedef void (^ICallback)(BOOL isSuccess, NSString* extraMsg);
对于调用 initService
方法后触发的回调,参数如下:
参数 | 说明 |
---|---|
isSuccess | 初始化操作是否成功。
|
extraMsg | 成功或失败的原因。
|
对于调用 stop
方法后触发的回调,参数如下:
参数 | 说明 |
---|---|
isSuccess | 加速是否完成。
|
extraMsg | 错误码。 |
调用 stop
方法后触发的回调,用于报告加速是否成功。该回调需要传入 registerInitCallback
方法的 stopCallback
参数。
typedef void (^ISetAddrCallback)(BOOL isSuccess, NSString* extraMsg, NSString* context);
参数 | 说明 |
---|---|
isSuccess | 调用
|
extraMsg | 成功或失败的原因。
|
context | 调用 |
初始化网络加速功能。调用该方法会触发 registerInitCallbacks
方法的 initCallback
参数中设置的回调。
- (void)initService;
开启或关闭智能双通道加速。如果您不调用该方法,SDK 默认关闭智能加速。
- (void)enableWiseMultiPath:(BOOL)enable;
参数 | 说明 |
---|---|
enable | 是否开启智能加速。
|
开始网络加速。
- (void)start:(NSString*)userLog;
参数 | 说明 |
---|---|
userLog | 自定义信息。例如统计埋点。加速结束时,GNA SDK 会将该自定义信息作为日志上报。 |
说明
该方法已废弃。建议您使用 setAccAddressWithParams
方法。
设置需要加速的目标地址列表。调用该方法会触发 registerInitCallbacks
方法的 setAddressCallback
参数中设置的回调。
- (void)setAccAddress:(NSArray<NSString*>*)address context:(NSString*)context append:(BOOL)append;
参数 | 说明 |
---|---|
address | 需要加速的目标地址列表,每个地址为 |
context | 上下文信息。您可以使用该参数将异步返回结果与方法调用关联起来。 |
append | 是否增量设置加速地址。
|
设置需要加速的目标地址列表。调用该方法会触发 registerInitCallbacks
方法的 setAddressCallback
参数中设置的回调。
- (void)setAccAddressWithParams:(TTNetMpaAcceleratedPointParams*)params;
参数 | 说明 |
---|---|
params |
网络加速参数。
@interface TTNetMpaAcceleratedPointParams : NSObject @property(nonatomic, strong) NSArray<NSString*>* addressList; @property(nonatomic, assign) TTNetMpaSocketType socketType; @property(nonatomic, assign) BOOL append; @property(nonatomic, strong) NSString* context; @end
参数 | 说明 |
---|---|
addressList | 需要加速的目标地址列表,每个地址为 |
socketType | 游戏客户端与游戏服务端之间的传输协议:
|
append | 是否增量设置加速地址。
|
context | 上下文信息。您可以使用该参数将异步返回结果与方法调用关联起来。 |
上报用户日志。
- (void)reportUserLog:(NSString*)userLog;
参数 | 说明 |
---|---|
userLog | 自定义信息。例如业务的统计埋点。加速结束时,GNA SDK 会将该自定义信息作为日志上报。 |
停止网络加速。调用该方法会触发 registerInitCallbacks
方法的 stopCallback
参数中设置的回调。
- (void)stop:(NSString*)userLog;
参数 | 说明 |
---|---|
endLog | 自定义信息。例如业务的统计埋点。加速结束时,GNA SDK 会将该自定义信息作为日志上报。 |