Реализация запросов ICE серверов (TURN)
This commit is contained in:
56
src/main/java/im/rosetta/packet/Packet28IceServers.java
Normal file
56
src/main/java/im/rosetta/packet/Packet28IceServers.java
Normal file
@@ -0,0 +1,56 @@
|
||||
package im.rosetta.packet;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.g365sfu.webrtc.RTCIceServer;
|
||||
import io.orprotocol.Stream;
|
||||
import io.orprotocol.packet.Packet;
|
||||
|
||||
public class Packet28IceServers extends Packet {
|
||||
|
||||
private List<RTCIceServer> iceServers;
|
||||
|
||||
@Override
|
||||
public void read(Stream stream) {
|
||||
int count = stream.readInt16();
|
||||
this.iceServers = new ArrayList<>();
|
||||
for (int i = 0; i < count; i++) {
|
||||
String url = stream.readString();
|
||||
String username = stream.readString();
|
||||
String credential = stream.readString();
|
||||
RTCIceServer iceServer = new RTCIceServer(url, username, credential);
|
||||
iceServers.add(iceServer);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream write() {
|
||||
Stream stream = new Stream();
|
||||
stream.writeInt16(this.packetId);
|
||||
stream.writeInt16(iceServers.size());
|
||||
for (RTCIceServer iceServer : iceServers) {
|
||||
stream.writeString(iceServer.getUrl());
|
||||
stream.writeString(iceServer.getUsername());
|
||||
stream.writeString(iceServer.getCredential());
|
||||
}
|
||||
return stream;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU.
|
||||
* @return список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU.
|
||||
*/
|
||||
public List<RTCIceServer> getIceServers() {
|
||||
return iceServers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU.
|
||||
* @param iceServers список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU.
|
||||
*/
|
||||
public void setIceServers(List<RTCIceServer> iceServers) {
|
||||
this.iceServers = iceServers;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user