Files
deb-python-autobahn/examples/twisted/wamp/basic/rpc/slowsquare/backend.js
Tobias Oberstein 4b09c4fe28 fix demos
2014-03-04 16:58:06 +01:00

53 lines
1.1 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: 'realm1'}
);
connection.onopen = function (session) {
// a "fast" function or a function that returns
// a direct value (not a promise)
function square(x) {
return x * x;
}
session.register('com.math.square', square);
// simulates a "slow" function or a function that
// returns a promise
function slowsquare(x) {
// create a deferred
var d = when.defer();
// resolve the promise after 1s
setTimeout(function () {
d.resolve(x * x);
}, 1000);
// need to return the promise
return d.promise;
}
session.register('com.math.slowsquare', slowsquare).then(
function (registration) {
console.log("Procedure registered:", registration.id);
},
function (error) {
console.log("Registration failed:", error);
}
);
};
connection.open();