Extract helpers to session-utils

This commit is contained in:
Kevin Sawicki & Nathan Sobo
2013-06-25 15:32:34 -07:00
committed by Nathan Sobo
parent b5b408d134
commit 89192c2ee2
3 changed files with 29 additions and 59 deletions

View File

@@ -1,36 +1,20 @@
require 'atom'
require 'window'
_ = require 'underscore'
{createPeer, connectDocument} = require './session-utils'
{createSite, Document} = require 'telepath'
window.setDimensions(x: 0, y: 0, width: 800, height: 800)
atom.show()
Peer = require './peer'
Guid = require 'guid'
{createSite, Document} = require 'telepath'
peerJsSettings =
host: 'ec2-54-218-51-127.us-west-2.compute.amazonaws.com'
port: 8080
wireDocumentEvents = (connection, sharedDocument) ->
sharedDocument.outputEvents.on 'changed', (event) ->
console.log 'sending event', event
connection.send(event)
connection.on 'data', (event) ->
console.log 'receiving event', _.clone(event.targetPath)
sharedDocument.handleInputEvent(event)
siteId = Guid.create().toString()
peer = new Peer(siteId, peerJsSettings)
peer = createPeer()
{sessionId} = atom.getLoadSettings()
connection = peer.connect(sessionId, reliable: true)
connection.on 'open', ->
console.log 'connection opened'
connection.once 'data', (data) ->
console.log 'received data', data
atom.windowState = Document.deserialize(createSite(siteId), data)
wireDocumentEvents(connection, atom.windowState)
console.log 'received document'
atom.windowState = Document.deserialize(createSite(peer.id), data)
connectDocument(atom.windowState, connection)
window.setUpEnvironment('editor')
window.startEditorWindow()

View File

@@ -1,46 +1,16 @@
Peer = require './peer'
Guid = require 'guid'
Prompt = require './prompt'
{createSite, Document} = require 'telepath'
$ = require 'jquery'
peerJsSettings =
host: 'ec2-54-218-51-127.us-west-2.compute.amazonaws.com'
port: 8080
wireDocumentEvents = (connection, sharedDocument) ->
sharedDocument.outputEvents.on 'changed', (event) ->
console.log 'sending event', event
connection.send(event)
connection.on 'data', (event) ->
console.log 'receiving event', event
sharedDocument.handleInputEvent(event)
{createPeer, connectDocument} = require './session-utils'
startSession = ->
id = Guid.create().toString()
peer = new Peer(id, peerJsSettings)
peer = createPeer()
peer.on 'connection', (connection) ->
connection.on 'open', ->
console.log 'sending document', atom.getWindowState().serialize()
connection.send(atom.getWindowState().serialize())
wireDocumentEvents(connection, atom.getWindowState())
id
joinSession = (id) ->
siteId = Guid.create().toString()
peer = new Peer(siteId, peerJsSettings)
connection = peer.connect(id, reliable: true)
connection.on 'open', ->
console.log 'connection opened'
connection.once 'data', (data) ->
console.log 'received data', data
remoteWindowState = Document.deserialize(createSite(siteId), data)
window.remoteWindowState = remoteWindowState
wireDocumentEvents(connection, remoteWindowState)
rootView.remove()
window.rootView = deserialize(remoteWindowState.get('rootView'))
$('body').append(rootView)
console.log 'sending document'
windowState = atom.getWindowState()
connection.send(windowState.serialize())
connectDocument(windowState, connection)
peer.id
module.exports =
activate: ->

View File

@@ -0,0 +1,16 @@
Peer = require './peer'
Guid = require 'guid'
module.exports =
createPeer: ->
id = Guid.create().toString()
new Peer(id, host: 'ec2-54-218-51-127.us-west-2.compute.amazonaws.com', port: 8080)
connectDocument: (doc, connection) ->
doc.outputEvents.on 'changed', (event) ->
console.log 'sending event', event
connection.send(event)
connection.on 'data', (event) ->
console.log 'receiving event', event
doc.handleInputEvent(event)