- && cpc.iceConnectionState.localeCompare('completed') !== 0) {
- console.log('Client: Polling server begin for intervalID = ' + intervalID)
- console.log('Client: Requesting ICE Candidates from server')
- const request = new XMLHttpRequest()
- request.open('GET', url, true)
- request.setRequestHeader('Content-Type', 'application/json' )
- request.setRequestHeader('X-Strapp-Type', 'ice-candidate-request')
- request.setRequestHeader('X-client-pubkey', pubKey)
- request.onreadystatechange = () => {
- if (request.status === 200) {
- if(request.readyState === 4) {
- console.log('Client: Recieved ICE Candidate from Host')
- cpc.addIceCandidate(new RTCIceCandidate(JSON.parse(request.response).ice))
- }
- }
- else if (request.status === 204) {
- console.log('Ice Candidate unavailable, trying again in one second')
- }
- else {
- console.log('server unhandled response of status ' + request.status)
- clearInterval(intervalID)
- }
- }
- request.send()
+ && cpc.iceConnectionState.localeCompare('completed') !== 0) {
+ console.log('Client: Polling server begin for intervalID = ' + intervalID)
+ console.log('Client: Requesting ICE Candidates from server')
+ const request = new XMLHttpRequest()
+ request.open('GET', url, true)
+ request.setRequestHeader('Content-Type', 'application/json' )
+ request.setRequestHeader('x-strapp-Type', 'ice-candidate-request')
+ request.setRequestHeader('x-client-pubkey', pubKey)
+ request.onreadystatechange = () => {
+ if (request.status === 200) {
+ if(request.readyState === 4) {
+ console.log('Client: Recieved ICE response from Host')
+ let response = JSON.parse(request.response)
+ switch(response['iceState']) {
+ case "a":
+ cpc.addIceCandidate(new RTCIceCandidate(response.ice))
+ break
+ case "g": /* Gathering so let interval keep polling */
+ break
+ case "c": /* host iceState == Complete, stop bugging it */
+ clearInterval(intervalID)
+ clearTimeout()
+ break
+ default:
+ console.log('Unhandled iceState in requestHostICE()' + response['iceState'])
+ break
+ }
+ }
+ }
+ else {
+ console.log('server unhandled response of status ' + request.status)
+ clearInterval(intervalID)
+ }
+ }
+ request.send()