IAgoraFpaProxyService
类包含以下成员方法。
public abstract void Dispose(bool sync = false);
销毁 IAgoraFpaProxyService
类。
public abstract void InitEventHandler(IAgoraFpaProxyServiceEventHandler serviceEventHandler);
注册 FPA 服务事件监听。
参数 | 说明 |
---|---|
serviceEventHandler | IAgoraFpaProxyServiceEventHandler 对象。 |
无
public abstract int Start(FpaProxyServiceConfig config);
开启 FPA 服务。
参数 | 说明 |
---|---|
config | FPA 服务配置。详见 FpaProxyServiceConfig 。 |
返回值 | 说明 |
---|---|
0 | 开启服务成功。 |
<0 | 开启服务失败。详见错误码。 |
public abstract int Stop();
关闭 FPA 服务。
public abstract int GetHttpProxyPort(ref ushort port);
获取当前使用的 HTTP 本地代理端口。
参数 | 说明 |
---|---|
port | HTTP 本地代理端口。 |
返回值 | 说明 |
---|---|
= 0 | 调用成功。 |
<0 | 调用失败。详见错误码。 |
public abstract int GetTransparentProxyPort(ref ushort proxy_port, FpaChainInfo info);
获取当前使用的透明代理端口。
参数 | 说明 |
---|---|
proxy_port | TCP 透明代理端口。 |
info | 加速通道相关信息。详见 FpaChainInfo 。 |
返回值 | 说明 |
---|---|
= 0 | 调用成功。 |
< 0 | 调用失败。详见错误码。 |
public abstract int SetParameters(string parameters);
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
JSON 选项默认不公开。
public abstract int SetOrUpdateHttpProxyChainConfig(FpaHttpProxyChainConfig config);
设置或更新 HTTP 本地代理的加速 IP/域名和对应的 chain ID 映射列表。
参数 | 说明 |
---|---|
config | 加速 IP/域名和对应的 chain ID 映射列表。详见 FpaHttpProxyChainConfig 。 |
返回值 | 说明 |
---|---|
0 | 调用成功。 |
< 0 | 调用失败。详见错误码。 |
public abstract int GetDiagnosisInfo(out FpaProxyServiceDiagnosisInfo info);
获取问题诊断用的信息。
参数 | 说明 |
---|---|
info | FpaProxyServiceDiagnosisInfo 对象。 |
返回值 | 说明 |
---|---|
0 | 调用成功。 |
< 0 | 调用失败。详见错误码。 |
public abstract string GetAgoraFpaProxyServiceSdkVersion();
获取 SDK 的版本号。
无
SDK 的版本号。
public abstract string GetAgoraFpaProxyServiceSdkBuildInfo();
获取 SDK 的 build 信息。
无
SDK 的 build 信息。
IAgoraFpaProxyServiceEventHandler
类包含以下回调。
public virtual void OnConnected(FpaProxyConnectionInfo info) { }
在成功连接 FPA 代理时触发。
参数 | 说明 |
---|---|
info | FPA 代理连接信息,详见 FpaProxyConnectionInfo 对象。 |
public virtual void OnAccelerationSuccess(FpaProxyConnectionInfo info) { }
在 FPA 代理加速成功时触发。
参数 | 说明 |
---|---|
info | FPA 代理连接信息,详见 FpaProxyConnectionInfo 对象。 |
public virtual void OnConnectionFailed(FpaProxyConnectionInfo info, FPA_FAILED_REASON_CODE reason) { }
在连接 FPA 代理失败且连接未回退时触发。
参数 | 说明 |
---|---|
info | FPA 代理连接信息,详见 FpaProxyConnectionInfo 对象。 |
reason | 失败原因。详见 FPA_FAILED_REASON_CODE 枚举。 |
public virtual void OnDisconnectedAndFallback(FpaProxyConnectionInfo info, FPA_FAILED_REASON_CODE reason) { }
在连接 FPA 代理失败且回退至本地连接时触发。
参数 | 说明 |
---|---|
info | FPA 代理连接信息,详见 FpaProxyConnectionInfo 对象。 |
reason | 失败原因。详见 FPA_FAILED_REASON_CODE 枚举。 |
加速链路的相关信息。
public FpaChainInfo(string address, int port, int chain_id, bool enable_fallback)
FpaChainInfo
类的构造方法。
参数 | 说明 |
---|---|
address | 目标 源站 的 IP 或域名。 |
port | 目标 源站 的端口。 |
chain_id | 加速通道的 chain ID。 |
enable_fallback | 对于此加速通道,FPA 连接失败时是否回退到本地连接。
|
FpaChainInfo
对象。
FPA 服务诊断信息。
public FpaProxyServiceDiagnosisInfo(string install_id, string instance_id)
FpaProxyServiceDiagnosisInfo
类的构造方法。
参数 | 类型 | 说明 |
---|---|---|
install_id | String | 与运行集成 SDK 的 app 的设备唯一对应的 ID。如果你清除了 app 缓存数据,该参数会更新。 |
instance_id | String | 与当前 FpaProxyService 实例唯一对应的 ID。 |
FpaProxyServiceDiagnosisInfo
对象。
FPA 服务配置。
public FpaProxyServiceConfig(string app_id, string token, int log_level, int log_file_size_kb, string log_file_path)
FpaProxyServiceConfig
类的构造方法。
参数 | 说明 |
---|---|
app_id | 声网为 app 开发者签发的 App ID,详见获取 App ID。 |
token | 在 app 服务器端生成的用于鉴权的 Token。如果你的项目使用 App ID 鉴权,你可以将 token 参数赋值为 App ID 的值,自 1.0.0 起也可以赋值为 null 、"" 或不填该参数;如果你使用 App ID + Token 鉴权,则需要传入你在 App 服务端生成的 Token。 |
log_level | 日志级别。
|
log_file_size_kb | 单个日志文件的大小,单位为 KB。默认值为 1024 KB。如果你将该参数设为 1024 KB,SDK 会最多输出总计 5 MB 的日志文件。如果你将该参数设为小于 1024 KB,设置不生效,单个日志文件最大仍为 1024 KB。 |
log_file_path | string 型。日志文件的完整路径,包括文件名。请确保你指定的目录存在而且可写。各平台的默认值如下
|
FpaProxyServiceConfig
对象。
HTTP 本地代理配置。
public FpaHttpProxyChainConfig(FpaChainInfo[] chain_array, int chain_array_size, bool fallback_when_no_chain_available)
FpaHttpProxyChainConfig
类的构造方法。
参数 | 说明 |
---|---|
chain_array | FpaChainInfo 对象的数组。 |
chain_array_size | 数组长度。 |
fallback_when_no_chain_available |
FpaHttpProxyChainConfig
对象。
FPA 代理连接的相关信息。
public FpaProxyConnectionInfo(string dst_ip_or_domain, string connection_id, string proxy_type, int dst_port, int local_port)
参数 | 说明 |
---|---|
dst_ip_or_domain | 目标 源站 的 IP 或域名。 |
connection_id | 连接 ID。每个 ID 代表 SDK 通过 FPA 代理与目标 源站 的一次完整连接。 |
proxy_type | 代理类型。
|
dst_port | 目标 源站 的端口。 |
local_port | 本地代理的端口。 |
FpaProxyConnectionInfo
对象。
SDK 返回的同步错误码。
枚举值 | 说明 |
---|---|
FPA_ERR_NONE |
0:没有错误。 |
FPA_ERR_INVALID_ARGUMENT |
-1:参数无效。请检查你是否使用了正确的参数。 |
FPA_ERR_NO_MEMORY |
-2:无法为对象分配内存。 |
FPA_ERR_NOT_INITIALIZED |
-3:FPA 服务没有初始化。请确保你成功进行了初始化。 |
FPA_ERR_CORE_INITIALIZE_FAILED |
-4:FPA 服务初始化失败。 |
FPA_ERR_UNABLE_BIND_SOCKET_PORT |
-5:无法绑定 SDK 内部的 socket 端口。 |
SDK 回调返回的失败原因。
枚举值 | 说明 |
---|---|
FPA_FAILED_REASON_DNS_QUERY |
-101:DNS 解析错误。 |
FPA_FAILED_REASON_SOCKET_CREATE |
-103:SDK 内部创建 socket 失败。 |
FPA_FAILED_REASON_SOCKET_CONNECT |
-104: SDK 内部连接 socket 失败。 |
FPA_FAILED_REASON_CONNECT_TIMEOUT |
-105:连接远端服务器超时。 |
FPA_FAILED_REASON_NO_CHAIN_ID_MATCH |
-106:找不到 chain ID。请检查是否设置了正确的 chain ID。 |
FPA_FAILED_REASON_DATA_READ |
-106: 读取数据失败。 |
FPA_FAILED_REASON_DATA_WRITE |
-107: 写入数据失败。 |
FPA_FAILED_REASON_TOO_FREQUENTLY |
-108:每秒并发连接数超出 100 条的限制。 |
FPA_FAILED_REASON_TOO_MANY_CONNECTIONS |
-109:当前存在的活跃连接数超出 1000 条的限制。 |