我的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