'use strict'; define( [ 'app', 'signalR' ], function () { return { appInitializer: function () { console.log('starting signalR'); var getStatus = function (status) { switch (status) { case 0: return 'connecting'; case 1: return 'connected'; case 2: return 'reconnecting'; case 4: return 'disconnected'; default: throw 'invalid status ' + status; } }; this.signalRconnection = $.connection("/signalr"); this.signalRconnection.stateChanged(function (change) { console.debug('SignalR: [{0}]'.format(getStatus(change.newState))); }); this.signalRconnection.received(function (message) { require( [ 'app' ], function (app) { app.vent.trigger('server:' + message.name, message.body); }) }); this.signalRconnection.start({ transport: [ 'longPolling' ] }); return this; } }; });