2015-06-25 62 views
0

我對SignalR相對較新,到目前爲止我所做的是上面的示例聊天應用程序。來自多個數據庫的SignalR中的推送通知

我們有一個包含多個數據庫的項目,它是一個機器數據收集應用程序。我在ASP.NET MVC中創建了一個Web控件來在一個地方查看多臺機器的數據。

我們有多個用戶,他們可以訪問與他們項目相關的機器。當前的解決方案在mvc頁面上有一個jQuery觀察器,用於在特定時間刷新機器控件。

我想使它成爲推送通知解決方案。但是因爲我是SignalR的初學者,所以我不知道如何解決這個問題。

目標是向用戶通知用戶有權訪問的機器(不是所有機器)的數據更改。

另外我怎樣才能從數據庫服務器發送消息到SignalR通知數據的變化?

我需要一些指導入門。

回答

0

SignalR Send方法允許你發送數據給用戶!它可能使用推送,框架,服務器事件或websocket技術。你的開發人員不關心這項技術!這取決於服務器和客戶端的握手。

你真正需要的是檢索您的數據庫中的數據,然後向用戶無後顧之憂

// Server side: 
protected override Task OnConnected(IRequest request, 
           string connectionId) 
{ 
    var db = new allEntities(); 
    var db2 =new allEntities2(); 
    var data1 = db.Tables.Where(e=>e.LastUpdate<=datetime.now.AddDays(-1)); 
    var data2=db2.Tables.Where(e=>e.Something==someRef); 
    var data=combine(data1,data2);//combine logic goes here 
    return Connection.Send(connectionId, data.ToList()); 
} 
+0

我可以做一個SingnalR服務器和每一次的數據庫更新我將消息發送到服務器這反過來將它提供給客戶?那可能嗎? – progrAmmar

+0

當然可以!並且使用並行編程'SendAsync'等會更好。 SignalR在項目中可用,您只需將SignalR Persistence類添加到現有項目中即可。 – Bellash

+0

您可以給我一些示例代碼,如果可能 – progrAmmar