使用SignalR定期刷新数据,而不是向客户端广播

时间:2019-07-05 08:22:21

标签: c# asp.net asp.net-mvc asp.net-core signalr

我在页面上显示一些数据,即Sum,Average和Total,并希望在使用SignalR更改数据后进行更新。大多数示例使用以下方法,在执行创建/更新/删除方法(更改数据)后广播所有客户端:

private void BroadcastDataChange(Data data)
{
    Clients.All.dataChanged();
}

但是,我想知道是否有一种更聪明的方法可以让我更新数据,即在每个create-update-delete方法中定期广播而不进行广播(我不使用SqlDependency等,而是使用SignalR突出显示)。另一方面,我不确定这种方法是否与SignalR逻辑相矛盾。这是我第一次使用SİgnalR,我很困惑:(任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以对SignalR使用轮询。但是,这只是一种低效的处理方式,因为:(1)发生更改的时间与向客户端广播更改之间会存在延迟。 (2)即使数据没有更改,广播仍会发生,这是对资源的浪费。