C# 信号机连接数据为空,并且赢得';t连接
我的MVC应用程序中有两个信号集线器,C# 信号机连接数据为空,并且赢得';t连接,c#,signalr,C#,Signalr,我的MVC应用程序中有两个信号集线器,ChatHub和AnotherHub聊天中心工作正常,但我无法连接到另一个。我知道signer认识到另一个hub存在,因为我在/signer/hubs中得到了以下JavaScript: signalR.chatHub = { _: { hubName: 'ChatHub', ignoreMembers: ['post'], connection: function () { return signalR
ChatHub
和AnotherHub
<代码>聊天中心工作正常,但我无法连接到另一个。我知道signer认识到另一个hub存在,因为我在/signer/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));
}
};
在聊天页面上,当使用/signalr/signalr/connect
连接时,Fiddler会告诉我以下内容:
connectionData [{"name":"chathub"}]
tid 10
但是,当尝试连接到另一个中心时,Fiddler说:
connectionData []
tid 3
聊天页面上的我的javascript:
cn = $.connection.chatHub;
$.connection.hub.start();
在另一页上:
cn = $.connection.anotherHub;
$.connection.hub.start();
现在,一件奇怪的事情;当我在另一个页面上将另一个hub更改为
chatHub
时,连接正常。当我将聊天页面上的chatHub
更改为anotherHub
时,也可以使用。唯一没有的组合是另一页上的另一个hub。(我已经通过在集线器的构造函数上设置服务器端断点并检查fiddler的ConnectionData参数来确认了这一点)。有什么想法吗?您确定在另一个页面上引用了所有相同的JS库(特别是/signal/hubs)?是的,非常确定。我可以连接到另一个页面上的聊天中心
,而不是另一个聊天中心
。如果你没有在另一个聊天中心注册任何回调,connectionData将是空的。如果我在另一个页面上使用聊天中心有效,反之亦然,我该怎么办?你有没有找到解决方案?我也有同样的错误。我有2个集线器,但第二个集线器上的connectionData为空。我已经设置了回调,但它不起作用。对不起,没有。我决定使用一个集线器,通过不同的方法进行路由。