64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
try {
|
|
var autobahn = require('autobahn');
|
|
var when = require('when');
|
|
} catch (e) {
|
|
// When running in browser, AutobahnJS will
|
|
// be included without a module system
|
|
var when = autobahn.when;
|
|
}
|
|
|
|
var connection = new autobahn.Connection({
|
|
url: 'ws://127.0.0.1:8080/ws',
|
|
realm: 'crossbardemo'}
|
|
);
|
|
|
|
connection.onopen = function (session) {
|
|
|
|
function ping() {
|
|
}
|
|
|
|
function add2(args) {
|
|
return args[0] + args[1];
|
|
}
|
|
|
|
function stars(args, kwargs) {
|
|
kwargs = kwargs || {};
|
|
kwargs.nick = kwargs.nick || "somebody";
|
|
kwargs.stars = kwargs.stars || 0;
|
|
return kwargs.nick + " starred " + kwargs.stars + "x";
|
|
}
|
|
|
|
var _orders = [];
|
|
for (var i = 0; i < 50; ++i) _orders.push(i);
|
|
|
|
function orders(args, kwargs) {
|
|
kwargs = kwargs || {};
|
|
kwargs.limit = kwargs.limit || 5;
|
|
return _orders.slice(0, kwargs.limit);
|
|
}
|
|
|
|
function arglen(args, kwargs) {
|
|
args = args || [];
|
|
kwargs = kwargs || {};
|
|
return [args.length, Object.keys(kwargs).length];
|
|
}
|
|
|
|
var dl = [];
|
|
|
|
dl.push(session.register('com.arguments.ping', ping));
|
|
dl.push(session.register('com.arguments.add2', add2));
|
|
dl.push(session.register('com.arguments.stars', stars));
|
|
dl.push(session.register('com.arguments.orders', orders));
|
|
dl.push(session.register('com.arguments.arglen', arglen));
|
|
|
|
when.all(dl).then(
|
|
function () {
|
|
console.log("All registered.");
|
|
},
|
|
function () {
|
|
console.log("Registration failed!", arguments);
|
|
});
|
|
};
|
|
|
|
connection.open();
|