У меня есть два концентратора SignalR в моем приложении MVC, ChatHub
и AnotherHub
. ChatHub
работает хорошо, но я не могу подключиться к другому. Я знаю, что SignalR распознает существование AnotherHub
, потому что я получаю следующий код JavaScript в /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));
}
};
На странице чата Fiddler сообщает мне следующее при соединении с /signalr/signalr/connect
:
connectionData [{"name":"chathub"}]
tid 10
Однако при попытке подключиться к anotherHub
Fiddler говорит:
connectionData []
tid 3
Мой javascript на странице чата:
cn = $.connection.chatHub;
$.connection.hub.start();
и на другой странице:
cn = $.connection.anotherHub;
$.connection.hub.start();
Теперь любопытная вещь; когда я меняю anotherHub
на chatHub
на другой странице, соединение работает. Когда я меняю chatHub
на anotherHub
на странице чата, это тоже работает. Единственная комбинация, которая не работает, это anotherHub
на другой странице. (Я подтвердил это с помощью точек останова на стороне сервера в конструкторах концентраторов и проверки fiddler для параметра ConnectionData). Любые идеи?