in Swift/KVSiOSApp/WebRTCClient.swift [126:139]
func handlePendingIceCandidates(clientId: String) {
// Add any pending ICE candidates from the queue for the client ID
if pendingIceCandidatesMap.index(forKey: clientId) != nil {
var pendingIceCandidateListByClientId: Set<RTCIceCandidate> = pendingIceCandidatesMap[clientId]!;
while !pendingIceCandidateListByClientId.isEmpty {
let iceCandidate: RTCIceCandidate = pendingIceCandidateListByClientId.popFirst()!
let peerConnectionCurrent : RTCPeerConnection = peerConnectionFoundMap[clientId]!
peerConnectionCurrent.add(iceCandidate)
print("Added ice candidate after SDP exchange \(iceCandidate.sdp)");
}
// After sending pending ICE candidates, the client ID's peer connection need not be tracked
pendingIceCandidatesMap.removeValue(forKey: clientId)
}
}