本文介绍了SignalR ConnectionData为空,无法连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的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
聊天页面上的My javascript:
cn = $.connection.chatHub;
$.connection.hub.start();
在另一页上:
cn = $.connection.anotherHub;
$.connection.hub.start();
现在,奇怪的是,当我将另一个页面上的anotherHub
更改为chatHub
时,连接正常。当我在聊天页面上将chatHub
更改为anotherHub
时,也可以使用。唯一没有的组合是另一个页面上的anotherHub
。(我已经通过集线器构造函数上的服务器端断点和检查ConnectionData参数的fiddler来确认这一点)。有什么想法吗?
推荐答案
是否确实引用了另一页上的所有相同JS库(特别是/SignalR/Hubs)?
这篇关于SignalR ConnectionData为空,无法连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!