我的 MVC 应用程序中有两个 SignalR 集线器ChatHub
,AnotherHub
. ChatHub
运行良好,但我无法连接到另一个。我知道 SignalR 认识到它的AnotherHub
存在,因为我在 /signalr/hubs 中获得了以下 JavaScript:
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 参数)。有任何想法吗?