我的MVC应用程序中有两个SignalR集线器,ChatHub
和AnotherHub
。 ChatHub
正常工作,但我无法连接到另一个。我知道SignalR承认AnotherHub
存在的,因为我得到的/ signalr /集线器下面的JavaScript:SignalR ConnectionData为空,并且不会连接
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));
}
};
在聊天页面,提琴手告诉我/signalr/signalr/connect
连接时以下几点:
connectionData [{"name":"chathub"}]
tid 10
但是,试图连接到anotherHub
时,菲德勒说:
connectionData []
tid 3
我聊天页面上的javascript:
cn = $.connection.chatHub;
$.connection.hub.start();
和另一页上:
cn = $.connection.anotherHub;
$.connection.hub.start();
现在,一件奇怪的事;当我在另一个页面上将anotherHub
更改为chatHub
时,连接起作用。当我在聊天页面上更改chatHub
到anotherHub
时,这也适用。唯一的组合不是另一页上的anotherHub
。 (我已经通过集线器的构造函数的服务器端断点和ConnectionData参数检查fiddler来确认这一点)。有任何想法吗?
如果您未注册anotherHub上的任何回调,connectionData将为空。 – davidfowl
鉴于如果我在另一个页面上使用chatHub,它可以正常工作,反之亦然,我应该怎么做? – harriyott
你有没有找到解决这个问题的方法?我有同样的错误。我有2个集线器,但第二个集线器上的connectionData是空的。我设置了回调,但它不工作。 – spaceman