UNPKG

happner

Version:

distributed application engine with evented storage and mesh services

74 lines (51 loc) 1.67 kB
/** * Created by Johan on 4/14/2015. * Updated by S.Bishop 6/1/2015. */ module.exports = function (options) { return new Component1(options); }; function Component1(options) { if (!options) options = {}; if (!options.maximumPings) options.maximumPings = 100; this.moduleMethod = function () { //console.log('ran the module method from the component level scope'); } this.exposedMethod = function (message, $happn, callback) { try { this.moduleMethod(); ////console.log(options); message.pingCount++; message.message = "Component1"; //_this.scope.api.events.component2.exposedMethod(function(e, response) if (message.pingCount < options.maximumPings) $happn.exchange.component2.exposedMethod(message, function (e, response) { }); else { var timeDiff = Date.now() - message.timestamp; var message = 'Hooray, component ping pong test is over!! ' + message.pingCount + ' pings, elapsed time:' + timeDiff + 'ms'; $happn.emit('maximum-pings-reached', {m: message}, function (e, response) { }); } callback(null, message); } catch (e) { callback(e); } } this.start = function (arg, $happn) { //console.log('starting module1 component'); if (!$happn) throw new Error('This module needs component level scope'); $happn.exchange.component2.exposedMethod({ message: "Component1", "timestamp": Date.now(), "pingCount": 0 }, function (e, response) { if (e) return //console.log('call to component2 broke...' + e); }); }; this.stop = function () { } }