diff --git a/packages/rocketchat-webrtc/WebRTCClass.coffee b/packages/rocketchat-webrtc/WebRTCClass.coffee index 2c5f0973d54b2bc51a5f1b5d694bb5bb95f12602..2d4dbc25970fec624077963d95960a7b88683856 100644 --- a/packages/rocketchat-webrtc/WebRTCClass.coffee +++ b/packages/rocketchat-webrtc/WebRTCClass.coffee @@ -149,6 +149,8 @@ class WebRTCClass @transport.onRemoteDescription @onRemoteDescription.bind @ @transport.onRemoteStatus @onRemoteStatus.bind @ + Meteor.setInterval @checkPeerConnections.bind(@), 1000 + Meteor.setInterval @broadcastStatus.bind(@), 1000 log: -> @@ -158,6 +160,11 @@ class WebRTCClass onError: -> console.error.apply(console, arguments) + checkPeerConnections: -> + for id, peerConnection of @peerConnections + if peerConnection.iceConnectionState not in ['connected', 'completed'] and peerConnection.createdAt + 5000 < Date.now() + @stopPeerConnection id + updateRemoteItems: -> items = [] itemsById = {} @@ -243,6 +250,7 @@ class WebRTCClass peerConnection = new RTCPeerConnection @config + peerConnection.createdAt = Date.now() peerConnection.remoteMedia = {} @peerConnections[id] = peerConnection