chore: add force relay config. (#169)

This commit is contained in:
CloudWebRTC
2022-09-11 11:49:48 +08:00
committed by GitHub
parent e11c8468de
commit 7cfe402f1a
+9 -2
View File
@@ -333,7 +333,7 @@ class Engine extends Disposable with EventsEmittable<EngineEvent> {
} }
} }
Future<void> _configurePeerConnections() async { Future<void> _configurePeerConnections({bool? forceRelay}) async {
if (publisher != null || subscriber != null) { if (publisher != null || subscriber != null) {
logger.warning('Already configured'); logger.warning('Already configured');
return; return;
@@ -351,6 +351,11 @@ class Engine extends Disposable with EventsEmittable<EngineEvent> {
.copyWith(iceServers: serverIceServers); .copyWith(iceServers: serverIceServers);
} }
if (forceRelay != null && forceRelay) {
rtcConfiguration = rtcConfiguration.copyWith(
iceTransportPolicy: RTCIceTransportPolicy.relay);
}
publisher = await Transport.create(_peerConnectionCreate, rtcConfiguration); publisher = await Transport.create(_peerConnectionCreate, rtcConfiguration);
subscriber = subscriber =
await Transport.create(_peerConnectionCreate, rtcConfiguration); await Transport.create(_peerConnectionCreate, rtcConfiguration);
@@ -593,7 +598,9 @@ class Engine extends Disposable with EventsEmittable<EngineEvent> {
'serverVersion: ${event.response.serverVersion}, ' 'serverVersion: ${event.response.serverVersion}, '
'iceServers: ${event.response.iceServers}'); 'iceServers: ${event.response.iceServers}');
await _configurePeerConnections(); await _configurePeerConnections(
forceRelay: event.response.clientConfiguration.forceRelay ==
lk_models.ClientConfigSetting.ENABLED);
if (!_subscriberPrimary) { if (!_subscriberPrimary) {
// for subscriberPrimary, we negotiate when necessary (lazy) // for subscriberPrimary, we negotiate when necessary (lazy)