I have two SignalR hubs in my MVC app, ChatHub
and AnotherHub
. ChatHub
is working nicely, but I can't connect to the other one. I know that SignalR recognises that AnotherHub
exists, because I'm getting the following JavaScript in /signalr/hubs:
signalR.chatHub = {
_: {
hubName: 'ChatHub',
ignoreMembers: ['post'],
connection: function () { return signalR.hub; }
},
post: function (room, message) {
return invoke(this, "Post", $.makeArray(arguments));
}
};
signalR.anotherHub = {
_: {
hubName: 'AnotherHub',
ignoreMembers: ['doSomething'],
connection: function () { return signalR.hub; }
},
doSomething: function (thing) {
return invoke(this, "DoSomething", $.makeArray(arguments));
}
};
On the chat page, Fiddler tells me the following when connecting with /signalr/signalr/connect
:
connectionData [{"name":"chathub"}]
tid 10
However, when trying to connect to anotherHub
, Fiddler says:
connectionData []
tid 3
My javascript on the chat page:
cn = $.connection.chatHub;
$.connection.hub.start();
and on the another page:
cn = $.connection.anotherHub;
$.connection.hub.start();
Now, a curious thing; when I change anotherHub
to chatHub
on the another page, the connection works. When I change chatHub
to anotherHub
on the chat page, that also works. The only combination that doesn't is anotherHub
on the another page. (I've confirmed this by server-side breakpoints on the hubs' constructors and checking fiddler for the ConnectionData parameter). Any ideas?
Are you sure you have referenced all of the same JS libraries (especially /signalr/hubs) on the another page?