我是MVC的新手。我目前正在将桌面转换为web应用程序。
当一个对象的事件发生时,我需要对用户视图进行更新。我有一个观察湿度传感器的物体。比方说,当湿度超过70%时,这个物体会触发一个事件。代码可能是这样的:
Private Sub Humidity_Alert(sender As Object) Handles objSensor.Alert
'Update user chart
End Sub
在桌面应用程序中,我只是像往常一样实时更新视图,但我还不知道如何在MVC中将此事件返回到客户端,而不使用javascript计时器在出现任何警报时发出ajax调用请求。如何解决我的问题?
我建议使用ASP.NET SignalR库:signar.NET
您可以使用它从服务器到客户端进行实时更新。
ASP.NET SignalR是一个面向ASP.NET开发人员的新库,它使向应用程序添加实时web功能变得非常简单。什么是"实时网络"功能?它能够让服务器端代码实时将内容推送到连接的客户端。
一些伪代码示例:
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);