create static method
Implementation
static Future<Transport> create(
{required int role,
required Signal signal,
required Map<String, dynamic> config}) async {
var transport = Transport(signal);
var pc = await createPeerConnection(config);
transport.pc = pc;
if (role == RolePub) {
transport.api = await pc.createDataChannel(
API_CHANNEL, RTCDataChannelInit()..maxRetransmits = 30);
}
pc.onIceCandidate = (candidate) {
signal.trickle(Trickle(target: role, candidate: candidate));
};
pc.onIceConnectionState = (state) => {
if (pc.iceConnectionState ==
RTCIceConnectionState.RTCIceConnectionStateDisconnected)
{
/* TODO: implement pc.restartIce for flutter_webrtc.
if (pc.restartIce) {
// this will trigger onNegotiationNeeded
pc.restartIce();
}*/
}
};
return transport;
}