我的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参数)。有什么想法吗?
答案 0 :(得分:0)
您确定在另一个页面上引用了所有相同的JS库(尤其是/ signalr / hubs)吗?