cleanup method
void
cleanup()
Implementation
void cleanup() {
logger.log('Cleaning up PeerConnection to ${connection.peer}');
final peerConnection = connection.peerConnection;
if (peerConnection == null) {
return;
}
connection.peerConnection = null;
// unsubscribe from all PeerConnection's events
peerConnection.onIceCandidate = null;
peerConnection.onIceConnectionState = null;
peerConnection.onDataChannel = null;
peerConnection.onTrack = null;
final peerConnectionNotClosed = peerConnection.signalingState != RTCSignalingState.RTCSignalingStateClosed;
bool dataChannelNotClosed = false;
final dataChannel = connection.dataChannel;
if (dataChannel != null) {
dataChannelNotClosed = dataChannel.state != RTCDataChannelState.RTCDataChannelClosed;
}
if (peerConnectionNotClosed || dataChannelNotClosed) {
peerConnection.close();
}
}