WebRTC Turn/Stun config

This commit is contained in:
Abdussamed 2023-04-27 22:45:36 +03:00
parent 5360929167
commit a5bd0e9443
1 changed files with 45 additions and 18 deletions

View File

@ -25,15 +25,14 @@ export default class WebRTC
public events : { [eventname:string]: Function[] } = {}; public events : { [eventname:string]: Function[] } = {};
public channel : RTCDataChannel | undefined; public channel : RTCDataChannel | undefined;
public peer? : Peer; public static defaultRTCConfig : RTCConfiguration = {
constructor()
{
this.rtc = new RTCPeerConnection({
iceCandidatePoolSize: 0, iceCandidatePoolSize: 0,
iceTransportPolicy:"all", iceTransportPolicy:"all",
rtcpMuxPolicy:"require", rtcpMuxPolicy:"require",
iceServers:[{ };
public static defaultICEServers : RTCIceServer[] = [{
urls: "stun:stun.l.google.com:19302" urls: "stun:stun.l.google.com:19302"
},{ },{
urls: "stun:stun1.l.google.com:19302" urls: "stun:stun1.l.google.com:19302"
@ -43,8 +42,36 @@ export default class WebRTC
urls: "stun:stun3.l.google.com:19302" urls: "stun:stun3.l.google.com:19302"
},{ },{
urls: "stun:stun4.l.google.com:19302" urls: "stun:stun4.l.google.com:19302"
}] }];
});
public peer? : Peer;
public FileTransportChannel? : P2PFileSender;
constructor(
rtcConfig?: RTCConfiguration,
rtcServers?: RTCIceServer[]
)
{
let config : any = {};
if(rtcConfig)
{
Object.assign(
config,
WebRTC.defaultRTCConfig,
rtcConfig
)
}else{
Object.assign(
config,
WebRTC.defaultRTCConfig
)
}
config.iceServers = rtcServers || WebRTC.defaultICEServers;
this.rtc = new RTCPeerConnection(config as RTCConfiguration);
this.rtc.addEventListener("connectionstatechange",()=>{ this.rtc.addEventListener("connectionstatechange",()=>{
this.eventConnectionState(); this.eventConnectionState();
}) })
@ -197,7 +224,7 @@ export default class WebRTC
if(this.rtc) if(this.rtc)
{ {
this.rtc.close(); this.rtc.close();
// this.rtc = undefined; //this.rtc = undefined;
}; };
this.emit('disconnected'); this.emit('disconnected');
WebRTC.channels.delete(this.id); WebRTC.channels.delete(this.id);