改变代理需要重新初始化sdk
小鱼SDK为第三方提供了设置代理服务器接口,用户可以通过此接口设置代理服务器。同时支持sockets 5代理和http代理,支持正向代理和反向代理。
可以通过代理的类型来设置不同的代理
enum ProxyType
{
DIRECT, // none
HTTP, // http & wss
UDP,
SOCK5, // SOCKS (V4 or V5) proxy
};
struct ProxyNetAddress
{
XYString hostAddress = "";
int port = 0;
XYString username = ""; // only for SOCKS5 authentication
XYString password = ""; // only for SOCKS5 authentication
};
/// @brief 设置代理
/// @param type - 代理类型
/// @param proxy - 代理配置
virtual void setProxy(ProxyType type, const ProxyNetAddress& proxy) = 0;
注SOCKS5提供了验证连通性的接口
/// @brief 验证socksProxy连通性
/// @param proxy - 代理配置
virtual void validateSocksProxy(const ProxyNetAddress& proxy) = 0;
enum SDKSocksValidateError
{
SDKSocksValidateError_Ok,
SDKSocksValidateError_Network,
SDKSocksValidateError_AuthMethod,
SDKSocksValidateError_UserPassword,
SDKSocksValidateError_ServerRefused,
SDKSocksValidateError_Timeout,
SDKSocksValidateError_Unknown
};
/// @brief socksProxy验证连通性回调
/// @param errorCode 错误码
virtual void onSocksProxyValidateCompleted(SDKSocksValidateError error) {};