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);
console.dir(sync.getObject());
});
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);
console.dir(sync.getObject());
});