Synko is a small library that allows you synchronize data objects between server and clients and call remote functions with a very friendly API. Synko is based on the Object Sync Protocol and can be used in conjuntion with SockJS or socket.io as connector to comunicate server and browser.
npm install synko
Server side:
var synko = require('synko').server
var myserver = synko.create();
myserver.on('connect', function( user ) {
user.sync('controllers', controllers);
});
var controllers = {
login: function(email, password, req) {
if ( DBValidUser(email, password) )
req.resolve();
else
req.reject('Invalid email or password');
}
};Browser side:
var controllers = {};
var server = synko.create();
server.connect()
.then(function(token) {
console.log('Connected!! My token is:', token);
return server.sync('controllers', controllers);
})
.then(function() {
console.log('Controller object synced:');
return controllers.login('enzo@josema.es', 'MyP4ssw0rd');
})
.then(function() {
console.log('Logged!');
})
.catch(function( error ) {
console.error( error );
});You can load synko on the browser as oldschool style
<script src="./browser/dist/synko.min.js">Or with ES6 (webpack and babel):
import synko from 'synko';var server = synko.create({connector:synko.socketio});
...Synko is a small library that allows you synchronize data objects between server and clients and call remote functions with a very friendly API. Synko is based on the Object Sync Protocol and can be used in conjuntion with SockJS or socket.io as connector to comunicate server and browser.
npm install synko
Server side:
var synko = require('synko').server
var myserver = synko.create();
myserver.on('connect', function( user ) {
user.sync('controllers', controllers);
});
var controllers = {
login: function(email, password, req) {
if ( DBValidUser(email, password) )
req.resolve();
else
req.reject('Invalid email or password');
}
};Browser side:
var controllers = {};
var server = synko.create();
server.connect()
.then(function(token) {
console.log('Connected!! My token is:', token);
return server.sync('controllers', controllers);
})
.then(function() {
console.log('Controller object synced:');
return controllers.login('enzo@josema.es', 'MyP4ssw0rd');
})
.then(function() {
console.log('Logged!');
})
.catch(function( error ) {
console.error( error );
});You can load synko on the browser as oldschool style
<script src="./browser/dist/synko.min.js">Or with ES6 (webpack and babel):
import synko from 'synko';var server = synko.create({connector:synko.socketio});
...For full API documentation visit: https://objectsyncprotocol.gitbooks.io/synko/content/