diff --git a/src/packages/collaboration/lib/guest-session.coffee b/src/packages/collaboration/lib/guest-session.coffee index 3ed270125..46c185fbe 100644 --- a/src/packages/collaboration/lib/guest-session.coffee +++ b/src/packages/collaboration/lib/guest-session.coffee @@ -18,21 +18,26 @@ class GuestSession constructor: (sessionId) -> @peer = createPeer() - connection = @peer.connect(sessionId, {reliable: true, connectionId: @getId()}) + connection = @peer.connect(sessionId, reliable: true) + connection.on 'open', => console.log 'connection opened' @trigger 'connection-opened' - connection.once 'data', (data) => - @trigger 'connection-document-received' - console.log 'received document', data - doc = telepath.Document.deserialize(data.doc, site: telepath.createSite(@getId())) - atom.windowState = doc.get('windowState') - @repository = doc.get('collaborationState.repositoryState') - @participants = doc.get('collaborationState.participants') - @participants.on 'changed', => - @trigger 'participants-changed', @participants.toObject() - connectDocument(doc, connection) - @mirrorRepository(data.repoSnapshot) + + connection.on 'data', (data) => + console.log 'received document', data + @trigger 'connection-document-received' + @createTelepathDocument(data, connection) + + createTelepathDocument: (data, connection) -> + doc = telepath.Document.deserialize(data.doc, site: telepath.createSite(@getId())) + atom.windowState = doc.get('windowState') + @repository = doc.get('collaborationState.repositoryState') + @participants = doc.get('collaborationState.participants') + @participants.on 'changed', => + @trigger 'participants-changed', @participants.toObject() + connectDocument(doc, connection) + @mirrorRepository(data.repoSnapshot) mirrorRepository: (repoSnapshot)-> repoUrl = @repository.get('url') diff --git a/src/packages/collaboration/lib/host-session.coffee b/src/packages/collaboration/lib/host-session.coffee index 466ac004b..770caf03f 100644 --- a/src/packages/collaboration/lib/host-session.coffee +++ b/src/packages/collaboration/lib/host-session.coffee @@ -42,24 +42,18 @@ class HostSession @peer.on 'connection', (connection) => connection.on 'open', => console.log 'sending document' - connection.send({repoSnapshot, doc: @doc.serialize()}) + connection.send({repoSnapshot, doc: @doc.serialize(), telepath: true}) connectDocument(@doc, connection) + @sharing = true + @trigger 'started' connection.on 'close', => - console.log 'conection closed' + console.log 'sharing session stopped' + @sharing = false @participants.each (participant, index) => if connection.peer is participant.get('id') @participants.remove(index) - - @peer.on 'open', => - console.log 'sharing session started' - @sharing = true - @trigger 'started' - - @peer.on 'close', => - console.log 'sharing session stopped' - @sharing = false - @trigger 'stopped' + @trigger 'stopped' @getId()