我的 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 参数)。有任何想法吗?