JSFiddle - React, Tailwind, and code Playground

by blesh

JavaScript

// 2014 (c) Ben Lesh
// All rights reserved, not for reproduction by Jeremy Wells :P


app.factory('hub', ['$window', '$q', '$rootScope', function ($window, $q, $rootScope) {
    var connection = $window.jQuery.hubConnection();
    var hubs = {};

    connection.start();

    return function (hubName) {
        hubProxy = hubs[hubName];
        if (!hubProxy) {
            var hubProxy = connection.createHubProxy(hubName);
            var oldOn = hubProxy.on;
            hubProxy.on = function (eventName, fn) {
                oldOn(eventName, function () {
                    $rootScope.$apply(function () {
                        fn.apply(this, arguments);
                    });
                });
            };
            hubs[hubName] = hubProxy;
        }
        return hubProxy;
    };
});


//usage example

function MyCtrl($scope, hub) {
    var myHub = hub('hubName');
    myHub.on('somethingWeird', function (stuff) {
        $scope.stuff = stuff;
        console.log('whatever is clever');
    });
}