Search code examples
jqueryasp.net-mvcsignalrsignalr-hub

SignalR client with multiple connections


I have multiple SignalR 'services' running and only one UI to access them.

How can I make the client js to talk to multiple connections with different Url? Because it seems I can only specify one url per $.connection.hub, and I can't use multiple 'signalr/hubs' client scripts.

Any help? Thanks.


Solution

  • $.connection.hub is created in the /signalr/hubs inclusion.

    At the end of the file it essentially does:

    $.connection.hub = $.hubConnection("/signalr", { useDefaultPath: false });
    

    To create the hub proxy you do:

    var myHub = $.connection.hub.createHubProxy('myHub');
    

    Simple example for multiple connections:

    var connection1 = $.hubConnection("http://www.myfirstendpoint.com");
    var connection2 = $.hubConnection("http://www.mysecondendpoint.com");
    
    var myCon1Hub = connection1.createHubProxy('myCon1Hub');
    var myCon2Hub = connection2.createHubProxy('myCon2Hub');
    
    myCon1Hub.client.foo = function() { ... Whatever you want ... };
    myCon2Hub.client.foo = function() { ... Whatever you want ... };
    
    connection1.start();
    connection2.start();