yjs/build/node/ConnectorsDeprecated/PeerJsConnector.js.map
2014-11-25 15:51:45 +00:00

1 line
9.6 KiB
Plaintext

{"version":3,"sources":["ConnectorsDeprecated/PeerJsConnector.coffee"],"names":[],"mappings":"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","file":"ConnectorsDeprecated/PeerJsConnector.js","sourceRoot":"/source/","sourcesContent":["\n#\n# @overload createPeerJsConnector peerjs_options, callback\n# @param {Object} peerjs_options Is the options object that is passed to PeerJs.\n# @param {Function} callback The callback is called when the connector is initialized.\n# @overload createPeerJsConnector peerjs_user_id, peerjs_options, callback\n# @param {String} peerjs_user_id The user_id that is passed to PeerJs as the user_id and should be unique between all (also the unconnected) Peers.\n# @param {Object} peerjs_options Is the options object that is passed to PeerJs.\n# @param {Function} callback The callback is called when the connector is initialized.\n#\ncreatePeerJsConnector = ()->\n peer = null\n if arguments.length is 2\n peer = new Peer arguments[0]\n callback = arguments[1]\n else\n peer = new Peer arguments[0], arguments[1]\n peer.on 'error', (err)->\n throw new Error \"Peerjs connector: #{err}\"\n peer.on 'disconnected', ()->\n throw new Error \"Peerjs connector disconnected from signalling server. Cannot accept new connections. Not fatal, but not so good either..\"\n callback = arguments[2]\n\n\n #\n # PeerJs is a Framework that enables you to connect to other peers. You just need the\n # user-id of the peer (browser/client). And then you can connect to it.\n # @see http://peerjs.com\n #\n class PeerJsConnector\n\n #\n # @param {Engine} engine The transformation engine\n # @param {HistoryBuffer} HB\n # @param {Array<Function>} execution_listener You must ensure that whenever an operation is executed, every function in this Array is called.\n # @param {Yatta} yatta The Yatta framework.\n #\n constructor: (@engine, @HB, @execution_listener, @yatta)->\n\n @peer = peer\n @connections = {}\n @new_connection_listeners = []\n\n @peer.on 'connection', (conn)=>\n @addConnection conn\n\n sync_every_collaborator = ()=>\n for conn_id, conn of @connections\n conn.send\n sync_state_vector: @HB.getOperationCounter()\n setInterval sync_every_collaborator, 4000\n\n send_ = (o)=>\n if o.uid.creator is @HB.getUserId() and (typeof o.uid.op_number isnt \"string\")\n for conn_id,conn of @connections\n conn.send\n op: o\n @execution_listener.push send_\n\n\n\n\n #\n # Connect the Framework to another peer. Therefore you have to receive his\n # user_id. If the other peer is connected to other peers, the PeerJsConnector\n # will automatically connect to them too.\n #\n # Transmitting the user_id is your job.\n # See [TextEditing](../../examples/TextEditing/) for a nice example\n # on how to do that with urls.\n #\n # @param id {String} Connection id\n #\n connectToPeer: (id)->\n if not @connections[id]? and id isnt @yatta.getUserId()\n @addConnection peer.connect id\n\n #\n # Receive the id of every connected peer.\n # @return {Array<String>} A list of Peer-Ids\n #\n getAllConnectionIds: ()->\n for conn_id of @connections\n conn_id\n\n onNewConnection: (f)->\n @new_connection_listeners.push f\n\n #\n # Adds an existing connection to this connector.\n # @param conn {PeerJsConnection}\n #\n addConnection: (conn)->\n #\n # What this method does:\n # * Send state vector\n # * Receive HB -> apply them\n # * Send connections\n # * Receive Connections -> Connect to unknow connections\n @connections[conn.peer] = conn\n initialized_me = false\n initialized_him = false\n conn.on 'data', (data)=>\n if data is \"empty_message\"\n # nop\n else if data.HB?\n initialized_me = true\n @engine.applyOpsCheckDouble data.HB\n if not data.initialized\n conn.send\n conns: @getAllConnectionIds()\n @new_connection_listeners.map (f)->\n f(conn)\n else if data.op?\n @engine.applyOp data.op\n else if data.conns?\n for conn_id in data.conns\n @connectToPeer conn_id\n else if data.sync_state_vector?\n conn.send\n HB: @yatta.getHistoryBuffer()._encode(data.sync_state_vector)\n initialized: true\n else if data.state_vector?\n if not initialized_him\n # make sure, that it is sent only once\n conn.send\n HB: @yatta.getHistoryBuffer()._encode(data.state_vector)\n initialized: false\n initialized_him = true\n else\n throw new Error \"Can't parse this operation: #{data}\"\n\n sendStateVector = ()=>\n conn.send\n state_vector: @HB.getOperationCounter()\n if not initialized_me\n # Because of a bug in PeerJs,\n # we never know if state vector was actually sent\n setTimeout sendStateVector, 100\n sendStateVector()\n\n peer.on 'open', (id)->\n callback PeerJsConnector, id\n\n\nmodule.exports = createPeerJsConnector\nif window?\n if not window.Y?\n window.Y = {}\n window.Y.createPeerJsConnector = createPeerJsConnector\n\n"]}