mirror of
https://github.com/atom/atom.git
synced 2026-01-23 05:48:10 -05:00
Add user to turn server configuration
This commit is contained in:
committed by
Corey Johnson & Matt Colyer
parent
07dea75562
commit
0e3940373d
@@ -35,19 +35,25 @@ class GuestSession
|
||||
window.site = new telepath.Site(@getId())
|
||||
doc = window.site.deserializeDocument(data.doc)
|
||||
|
||||
servers = {iceServers: [{url: "turn:54.218.196.152:3478", credential:"youhavetoberealistic"}]}
|
||||
mediaConnection = new webkitRTCPeerConnection(servers)
|
||||
mediaConnection.onicecandidate = (event) =>
|
||||
return unless event.candidate?
|
||||
console.log "Set Guest Candidate", event.candidate
|
||||
doc.set 'collaborationState.guest.candidate', event.candidate
|
||||
|
||||
mediaConnection.onaddstream = ({@stream}) =>
|
||||
@trigger 'stream-ready', @stream
|
||||
console.log('Added Stream', @stream)
|
||||
servers = {iceServers: [{url: "stun:54.218.196.152:3478"}, {url: "turn:ninefingers@54.218.196.152:3478", credential:"youhavetoberealistic"}]}
|
||||
mediaConnection = null
|
||||
|
||||
constraints = {video: true, audio: true}
|
||||
success = (stream) => mediaConnection.addStream(stream)
|
||||
success = (stream) =>
|
||||
mediaConnection = new webkitRTCPeerConnection(servers)
|
||||
mediaConnection.onicecandidate = (event) =>
|
||||
return unless event.candidate?
|
||||
console.log "Set Guest Candidate", event.candidate
|
||||
doc.set 'collaborationState.guest.candidate', event.candidate
|
||||
|
||||
mediaConnection.onaddstream = ({@stream}) =>
|
||||
@trigger 'stream-ready', @stream
|
||||
console.log('Added Host\'s Stream', @stream)
|
||||
|
||||
mediaConnection.addStream(stream)
|
||||
guest = doc.get 'collaborationState.guest'
|
||||
guest.set 'ready', true
|
||||
|
||||
navigator.webkitGetUserMedia constraints, success, console.error
|
||||
|
||||
atom.windowState = doc.get('windowState')
|
||||
@@ -66,10 +72,13 @@ class GuestSession
|
||||
console.log "Received host description", hostDescription
|
||||
sessionDescription = new RTCSessionDescription(hostDescription)
|
||||
mediaConnection.setRemoteDescription(sessionDescription)
|
||||
mediaConnection.createAnswer (guestDescription) =>
|
||||
success = (guestDescription) =>
|
||||
console.log "Set guest description", guestDescription
|
||||
mediaConnection.setLocalDescription(guestDescription)
|
||||
guest.set('description', guestDescription)
|
||||
|
||||
console.log "COOL?", mediaConnection?
|
||||
mediaConnection.createAnswer success, console.error
|
||||
when 'candidate'
|
||||
hostCandidate = new RTCIceCandidate newValue.toObject()
|
||||
console.log('Guest received candidate', hostCandidate)
|
||||
@@ -80,8 +89,6 @@ class GuestSession
|
||||
connectDocument(doc, connection)
|
||||
@mirrorRepository(data.repoSnapshot)
|
||||
|
||||
guest.set 'ready', true
|
||||
|
||||
mirrorRepository: (repoSnapshot) ->
|
||||
repoPath = Project.pathForRepositoryUrl(@repository.get('url'))
|
||||
|
||||
|
||||
@@ -19,19 +19,22 @@ class HostSession
|
||||
start: ->
|
||||
return if @peer?
|
||||
|
||||
servers = {iceServers: [{url: "turn:54.218.196.152:3478", credential:"youhavetoberealistic"}]}
|
||||
mediaConnection = new webkitRTCPeerConnection(servers)
|
||||
mediaConnection.onicecandidate = (event) =>
|
||||
return unless event.candidate?
|
||||
console.log "Set Host Candidate", event.candidate
|
||||
@doc.set 'collaborationState.host.candidate', event.candidate
|
||||
|
||||
mediaConnection.onaddstream = ({@stream}) =>
|
||||
@trigger 'stream-ready', @stream
|
||||
console.log('Added Stream', @stream)
|
||||
servers = {iceServers: [{url: "stun:54.218.196.152:3478"}, {url: "turn:ninefingers@54.218.196.152:3478", credential:"youhavetoberealistic"}]}
|
||||
mediaConnection = null
|
||||
|
||||
constraints = {video: true, audio: true}
|
||||
success = (stream) => mediaConnection.addStream(stream)
|
||||
success = (stream) =>
|
||||
mediaConnection = new webkitRTCPeerConnection(servers)
|
||||
mediaConnection.onicecandidate = (event) =>
|
||||
return unless event.candidate?
|
||||
console.log "Set Host Candidate", event.candidate
|
||||
@doc.set 'collaborationState.host.candidate', event.candidate
|
||||
|
||||
mediaConnection.onaddstream = ({@stream}) =>
|
||||
@trigger 'stream-ready', @stream
|
||||
console.log('Added Guest\'s Stream', @stream)
|
||||
|
||||
mediaConnection.addStream(stream)
|
||||
navigator.webkitGetUserMedia constraints, success, console.error
|
||||
|
||||
@peer = createPeer()
|
||||
@@ -56,10 +59,12 @@ class HostSession
|
||||
guest.on 'changed', ({key, newValue}) =>
|
||||
switch key
|
||||
when 'ready'
|
||||
mediaConnection.createOffer (description) =>
|
||||
success = (description) =>
|
||||
console.log "Create Offer", description
|
||||
mediaConnection.setLocalDescription(description)
|
||||
host.set 'description', description
|
||||
|
||||
mediaConnection.createOffer success, console.error
|
||||
when 'description'
|
||||
guestDescription = newValue.toObject()
|
||||
console.log "Received Guest description", guestDescription
|
||||
|
||||
@@ -24,7 +24,8 @@ module.exports =
|
||||
createPeer: ->
|
||||
id = Guid.create().toString()
|
||||
key = '0njqmaln320dlsor'
|
||||
config = {iceServers: [{url: "turn:54.218.196.152:3478", credential:"youhavetoberealistic"}]}
|
||||
# config = {iceServers: [{url: "turn:ninefingers@54.218.196.152:3478", credential:"youhavetoberealistic"}]}
|
||||
config = {iceServers: [{url: "stun:54.218.196.152:3478"}, {url: "turn:ninefingers@54.218.196.152:3478", credential:"youhavetoberealistic"}]}
|
||||
new Peer(id, {key, config})
|
||||
|
||||
connectDocument: (doc, connection) ->
|
||||
@@ -32,14 +33,14 @@ module.exports =
|
||||
outputListener = (event) ->
|
||||
return unless connection.open
|
||||
event.id = nextOutputEventId++
|
||||
console.log 'sending event', event.id, event
|
||||
# console.log 'sending event', event.id, event
|
||||
connection.send(event)
|
||||
doc.on('replicate-change', outputListener)
|
||||
|
||||
queuedEvents = []
|
||||
nextInputEventId = 1
|
||||
handleInputEvent = (event) ->
|
||||
console.log 'received event', event.id, event
|
||||
# console.log 'received event', event.id, event
|
||||
doc.applyRemoteChange(event)
|
||||
nextInputEventId = event.id + 1
|
||||
flushQueuedEvents = ->
|
||||
@@ -57,7 +58,7 @@ module.exports =
|
||||
handleInputEvent(event)
|
||||
flushQueuedEvents()
|
||||
else
|
||||
console.log 'enqueing event', event.id, event
|
||||
# console.log 'enqueing event', event.id, event
|
||||
queuedEvents.push(event)
|
||||
|
||||
connection.on 'close', ->
|
||||
|
||||
Reference in New Issue
Block a user