Nautical Poseidon Mythology

    prism.io

    0.0.1 • Public • Published

    prism.io

    Share and edit documents in real-time.

    • Silent reconnect: Whether the server goes down or the connection drops dead, it doesn't matter. Once the connection is re-established prism will sync everything and you'll be fine.

    npm install prism.io and component install marcelklehr/prism.io (I intend to add a plain, browserified version)

    Server

    var server = require('http').createServer(app)
      , prism = require('prism.io')(server)
     
    server.listen(80)

    Client

    var prism = require('prism.io')
     
    prism.connect({
      document: window.location.pathname // or something else
    , editor: new prism.HtmlAdapter(document.querySelector('.content')) // Any contenteditable element or the body of an wysiwyg editor's iframe
    })

    prism.connect(options)

    Possible options are:

    • editor: An editor adapter
    • server: The server address. Default: 'http://localhost'
    • document: A string containing the identifier of the document to access

    Adapters

    Class: prism.HtmlAdapter(element)

    Takes any block and inline html element except for inputs.

    Class: prism.TextinputAdapter(element)

    Takes an input element like a <textarea> or an <input type="text">.

    Todo

    hah!, lots...

    • Wrap changesets in edits to dry up edit transformations
    • MESSAGE QUEUE! Once you start doing async stuff, you have multiple half-digested maessages -- bad thing. And a prefect race condition.
    • Authorization/Authentication
    • Investigate on webRTC's DataChannel (client-side peer-to-peer communication)
    • Otherwise make it scale without pain (for the admin, of course! This is gonna be an ordeal for the programmer...)
    • Perhaps remove socket.io as a dep and make people add their own transport layer
    • Sync the dom directly, instead of innerHTML? -- check how meteor guys do it.. perhaps use https://github.com/tomhuda/metamorph.js
    • multiple connections on one page

    Problems? Ideas? Inspiration?

    Submit an issue. Really!

    License

    MIT

    Install

    npm i prism.io

    DownloadsWeekly Downloads

    3

    Version

    0.0.1

    License

    MIT

    Last publish

    Collaborators

    • marcelklehr