从多个数据库推送SignalR中的通知

时间:2015-06-25 08:51:57

标签: c# sql-server asp.net-mvc asp.net-mvc-5 signalr

我对SignalR比较陌生,到目前为止我所做的是开始使用示例聊天应用程序。

我们有一个包含多个数据库的项目,它是一个机器数据收集应用程序。我在ASP.NET MVC中创建了一个Web控件,以便在一个位置查看多台计算机的数据。

我们有多个用户,他们可以访问与其项目相关的计算机。当前的解决方案在mvc页面上有一个jQuery观察器,它在特定时间刷新机器控件。

我正在考虑将其作为推送通知解决方案。但由于我是SignalR的初学者,我不知道如何处理这个问题。

目标是通知用户用户有权访问的计算机的数据更改(并非所有计算机)。

另外,如何从数据库服务器向SignalR发送消息,通知数据发生变化?

我需要一些指导才能开始。

1 个答案:

答案 0 :(得分: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()); 
}