Сигналинг WebRTC

This commit is contained in:
RoyceDa
2026-03-14 22:58:40 +02:00
parent 145adf3ec7
commit 567fd9fb4c
3 changed files with 147 additions and 6 deletions

View File

@@ -0,0 +1,65 @@
package im.rosetta.packet;
import im.rosetta.packet.runtime.NetworkWebRTCType;
import io.orprotocol.Stream;
import io.orprotocol.packet.Packet;
public class Packet27WebRTC extends Packet {
/**
* SDP оффер/answer или ICE кандидат, в зависимости от типа сообщения
*/
private String sdpOrCandidate;
/**
* Тип сообщения WebRTC
*/
private NetworkWebRTCType type;
@Override
public void read(Stream stream) {
this.type = NetworkWebRTCType.fromCode(stream.readInt8());
this.sdpOrCandidate = stream.readString();
}
@Override
public Stream write() {
Stream steram = new Stream();
steram.writeInt16(this.packetId);
steram.writeInt8(this.type.getCode());
steram.writeString(this.sdpOrCandidate);
return steram;
}
/**
* Получить SDP оффер/answer или ICE кандидат, в зависимости от типа сообщения
* @return SDP оффер/answer или ICE кандидат
*/
public String getSdpOrCandidate() {
return sdpOrCandidate;
}
/**
* Получить тип сообщения WebRTC, который указывает на то, является ли это оффером, ответом на оффер или ICE кандидатом
* @return тип сообщения WebRTC
*/
public NetworkWebRTCType getType() {
return type;
}
/**
* Установить SDP оффер/answer или ICE кандидат, в зависимости от типа сообщения
* @param sdpOrCandidate SDP оффер/answer или ICE кандидат
*/
public void setSdpOrCandidate(String sdpOrCandidate) {
this.sdpOrCandidate = sdpOrCandidate;
}
/**
* Установить тип сообщения WebRTC, который указывает на то, является ли это оффером, ответом на оффер или ICE кандидатом
* @param type тип сообщения WebRTC
*/
public void setType(NetworkWebRTCType type) {
this.type = type;
}
}