2
我已經開始在SignalR 0.4中進行挖掘並陷入了一個問題。我想有相同的網頁,其中爲了簡單起見,在兩個不同的集線器是:無法通過兩個集線器獲得SignalR的工作
public class ChatHub : Hub
{
public void Send(string message)
{
Clients.addMessage(message);
}
}
public class Chat2Hub : Hub
{
public void Send2(string message)
{
Clients.addMessage2(message);
}
}
這是我的客戶端代碼:
function initChat() {
var chat = $.connection.chat;
chat.addMessage = function (message) {...};
$('.send-cmd').click(function() {...});
return $.connection.hub.start();
}
function initChat2() {
var chat2 = $.connection.chat2;
chat2.addMessage2 = function (message) {...};
$('.send2-cmd').click(function() {...});
return $.connection.hub.start();
}
$(function() {
initChat().done(function() {
initChat2();
});
});
很簡單,但我不能讓他們一起工作。在這個例子中,「聊天」工作正常,「聊天2」失敗(沒有錯誤)。 如果我反轉初始化的順序當然會發生相反的情況。
我錯過了什麼?
它不起作用。還有一個check in signalR.start(),它檢查是否已經有可用的傳輸並立即解決承諾。大圖書館BTW :-) – iacoware 2012-02-14 10:49:12
什麼不行?呼叫開始一次?代碼中存在一系列問題。在打電話開始之前,您需要訂閱所有集線器上的所有事件。 – davidfowl 2012-02-14 10:57:29
你當然是對的。必須在所有連線完成後調用hub.start()。 – iacoware 2012-02-14 11:04:28