setLocalProxy method
@detail api
@author keshixing.rtc
@brief 设置本地代理。
@param configurations 本地代理配置参数。参看 LocalProxyConfiguration{@link #LocalProxyConfiguration}。
你可以根据自己的需要选择同时设置 Http 隧道 和 Socks5 两类代理,或者单独设置其中一类代理。如果你同时设置了 Http 隧道 和 Socks5 两类代理,此时,媒体和信令采用 Socks5 代理, Http 请求采用 Http 隧道代理;如果只设置 Http 隧道 或 Socks5 一类代理,媒体、信令和 Http 请求均采用已设置的代理。
调用此接口设置本地代理后,若想清空当前已有的代理设置,可再次调用此接口,选择不设置任何代理即可清空。
@note
- 该方法需要在进房前调用。
- 调用该方法设置本地代理后,SDK 会触发 onLocalProxyStateChanged{@link #IRTCEngineEventHandler#onLocalProxyStateChanged} ,返回代理连接的状态。
Implementation
Future<int?> setLocalProxy(
List<LocalProxyConfiguration> configurations) async {
$a() => ($instance as $p_a.RTCEngine).setLocalProxy(configurations
.map(($item) => unpackObject<$p_a.LocalProxyConfiguration>($item))
.toList());
$i() => ($instance as $p_i.ByteRTCEngine).setLocalProxy(configurations
.map(($item) => unpackObject<$p_i.ByteRTCLocalProxyInfo>($item))
.toList());
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}