如何在事件发生时进行屏幕客户端更新(MVC)?

How to make screen client updates whenever an event occurred (MVC)?

我是 MVC 新手。我目前正在努力将桌面转换为 Web 应用程序。

我需要在对象事件发生时更新用户视图。我有一个观察湿度传感器的物体。假设当湿度超过 70% 时,这个对象将触发一个事件。代码可能是这样的:

Private Sub Humidity_Alert(sender As Object) Handles objSensor.Alert
    'Update user chart
End Sub

在桌面应用程序中,我只是像往常一样实时更新视图,但我还不知道如何 return 在 MVC 中向客户端发送此事件,而不使用 javascript 计时器发出 ajax 呼叫以请求是否有任何警报。如何解决我的问题?

我建议使用 ASP.NET SignalR 库:signalr.net

您可以将其用于从服务器到客户端的实时更新。

ASP.NET SignalR is a new library for ASP.NET developers that makes it incredibly simple to add real-time web functionality to your applications. What is "real-time web" functionality? It's the ability to have your server-side code push content to the connected clients as it happens, in real-time.

一些伪代码示例:

SignalR 中心:

public class HumidityHub : Hub
{
    public void RefreshChart(string data)
    {
        Clients.All.refreshChart(data);
    }
}

客户代码:

var hub = $.connection.humidityHub;

hub.client.refreshChart= function (data) {
    //refresh your chart    
};

$.connection.hub.start();

服务器代码:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<HumidityHub >();
hubContext.Clients.All.refreshChart(data);