Поддержка нескольких протоколов у ICE серверов
This commit is contained in:
@@ -206,14 +206,12 @@ public class ForwardUnitService {
|
|||||||
* @return список серверов для RTC
|
* @return список серверов для RTC
|
||||||
*/
|
*/
|
||||||
public Set<RTCIceServer> getTurnServers() {
|
public Set<RTCIceServer> getTurnServers() {
|
||||||
Set<RTCIceServer> turnServers = new HashSet<>();
|
Set<RTCIceServer> iceServers = new HashSet<>();
|
||||||
for(SFU sfu : this.sfuConnections) {
|
for(SFU sfu : this.sfuConnections) {
|
||||||
RTCIceServer turnServer = sfu.getTurnServer();
|
Set<RTCIceServer> iceServersSupporetd = sfu.getIceServers();
|
||||||
if(turnServer != null) {
|
iceServers.addAll(iceServersSupporetd);
|
||||||
turnServers.add(turnServer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return turnServers;
|
return iceServers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.net.URISyntaxException;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -64,11 +65,9 @@ public class SFU {
|
|||||||
private Consumer<DisconnectedPeer> onPeerDisconnected;
|
private Consumer<DisconnectedPeer> onPeerDisconnected;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TURN сервер предоставляемый SFU (если включен), который может быть использован
|
* TURN сервер предоставляемый SFU (если включен), может поддерживать udp,tcp протоколы (несколько ice)
|
||||||
* для обмена кандидатами между участниками звонка через NAT и брандмауэры.
|
|
||||||
* Если SFU сервер не предоставляет TURN сервер, то это поле будет равно null.
|
|
||||||
*/
|
*/
|
||||||
private RTCIceServer turnServer;
|
private Set<RTCIceServer> iceServers = new HashSet<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Конструктор для создания объекта SFU, который будет использоваться для установления соединения с SFU сервером.
|
* Конструктор для создания объекта SFU, который будет использоваться для установления соединения с SFU сервером.
|
||||||
@@ -244,7 +243,7 @@ public class SFU {
|
|||||||
byte[] transportBytes = new byte[transportLength];
|
byte[] transportBytes = new byte[transportLength];
|
||||||
message.get(transportBytes);
|
message.get(transportBytes);
|
||||||
String transport = new String(transportBytes).trim();
|
String transport = new String(transportBytes).trim();
|
||||||
this.turnServer = new RTCIceServer(url, username, credential, transport);
|
this.iceServers.add(new RTCIceServer(url, username, credential, transport));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -400,7 +399,7 @@ public class SFU {
|
|||||||
/**
|
/**
|
||||||
* Возвращает TURN сервер на этом SFU
|
* Возвращает TURN сервер на этом SFU
|
||||||
*/
|
*/
|
||||||
public RTCIceServer getTurnServer() {
|
public Set<RTCIceServer> getIceServers() {
|
||||||
return turnServer;
|
return this.iceServers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user