我一直在使用SignalR和MVC4幾周,並且在簡單設置方面大部分都取得了成功。使用一個頁面設置和一個集線器從服務器發送消息到所有客戶端時,我沒有任何問題。似乎無法在SignalR中調用服務器方法
我正在開發的當前項目中,我試圖使用組,所以在開始客戶端連接之後,我嘗試打電話給服務器。
在我_Layout.cshtml
var dashboardhub;
$(document).ready(function() {
dashboardhub = $.connection.dashboardHub;
dashboardhub.client.connect = function() { };
window.hubReady = $.connection.hub.start();
});
我Index.cshtml
window.hubReady.done(function() {
dashboardhub.server.addGroup('@ViewContext.RouteData.Values["area"].ToString()');
}).fail(function() {
console.log('connection failed');
});
在我DashboardHub類
public class DashboardHub : Hub {
/// <summary>
/// Constructor
/// </summary>
public DashboardHub() {
}
public void AddGroup(string group) {
this.Groups.Add(Context.ConnectionId, group);
}
}
當dashboardhub.server.addGroup客戶端上發射我從來沒有看到它打到服務器方法AddGroup。這顯然使創建組很困難。
這很可能我錯過了一些東西,但我不完全確定它可能是什麼。任何指針將非常感激。
編輯:抱歉的無意義的職位。中心構造函數中有一些拋出異常的東西,但它不是很明顯。顯然它不在我發佈的代碼中,但基本上,我在構造函數中爲null的對象上添加了一個PropertyChanged事件處理程序。這基本上打破了整個集線器,它不允許服務器呼叫。
回答你自己的問題,並將其標記爲已回答。 –
我會在幾個小時內讓我這樣做,當我被允許 – SnareHanger