59 lines
2.4 KiB
Java
59 lines
2.4 KiB
Java
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();
|
|
String transport = stream.readString();
|
|
RTCIceServer iceServer = new RTCIceServer(url, username, credential, transport);
|
|
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());
|
|
stream.writeString(iceServer.getTransport());
|
|
}
|
|
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;
|
|
}
|
|
|
|
}
|