我刚刚开始使用 SignalR,我想知道它是否是我正在处理的任务的好工具。
简而言之,我的对象具有随时间变化的属性。计时器作业每隔一段时间就会运行一次以更新这些属性。为了解释起见,假设我有一个带有属性“isExpired”的 MilkJugs,一旦某个 DateTime 被击中,该属性就会发生变化。
当我的 timerjob 碰到 MilkJug 并将其翻转为 isExpired = true 时,我希望所有客户端都能立即收到通知。如果客户在 Chrome 中查看七个 MilkJug,我希望他们看到所有七个 MilkJug 都变黄(或类似的东西)。
我可以使用 signalR 从 timerJob 向客户端“广播”这些通知吗?我刚刚浏览了他们提供的聊天示例,开始工作似乎超级简单......我想我可以做这样的服务器端:
public class ChatHub : Hub
{
public void Send(List<MilkJugUpdate> updates)
{
// Call the broadcastMessage method to update milkJugs.
Clients.All.broadcastMessage(updates);
}
}
然后客户端只需遍历序列化数组,更新我的 JS viewModels 中的相应字段。
这听起来对吗?