如何在事件发生时进行屏幕客户端更新(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);
我是 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);