Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    objdistpublic

    ObjDist

    Distributes objects between server and clients via Socket.IO-socket-like transports. Works on a KVCObject, by opening a channel on each node in the object tree, streaming only relevant, minimal updates in each channel.

    Use ObjSync on clients in order to receive.

    Public API

    • (constructor)(< Socket.IO-server-like>transport, [< object >options])
      Creates and returns a new ObjDist object, which communicates via transport.
      Valid options:
      • prefix - string - prefix to all channel names. Cannot be empty string. Default: 'root'

    Inherits all methods of KVCObject. All updates are automatically (and minimally) synced.

    Example

    Server-side

    var io = require('socket.io');
    var ObjDist = require('objdist');
     
    var transport = io.listen(8888);
    var dist = new ObjDist(transport);
     
    dist.setObject({foo:'bar', person:{name:'johnny'}});

    Client-side A, connecting to root, receiving all updates

    var io = require('socket.io-client');
    var ObjSync = require('objsync');
     
    var transport = io.connect('localhost/root', {port:8888});
    var sync = new ObjSync(transport);
     
    sync.once('update', function (updated) {
        console.dir(updated); // { foo: 'bar', 'person.name': 'johnny' }
        console.dir(sync.getObject()); // { foo: 'bar', person: { name: 'johnny' } }
    });

    Client-side B, connection to root/person, receiving only updates in the person-subtree

    var io = require('socket.io-client');
    var ObjSync = require('objsync');
     
    var transport = io.connect('localhost/root/person', {port:8888});
    var sync = new ObjSync(transport);
     
    sync.once('update', function (updated) {
        console.dir(updated); // { name: 'johnny' }
        console.dir(sync.getObject()); // { name: 'johnny' }
    });

    Keywords

    none

    install

    npm i objdist

    Downloadsweekly downloads

    15

    version

    0.1.0-4

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar