【问题标题】:Reminder using Signal R使用 Signalr 进行提醒
【发布时间】:2014-06-09 07:00:20
【问题描述】:
我在 asp.net mvc 中有一个使用信号 R 的提醒功能
我有用户界面来设置提醒时间,如果当前时间与提醒时间匹配,它会调用一个弹出窗口。
我通过使用 javascript 计时器每 30 秒检查一次数据库,成功地使用 Signal R 实现了此功能。如果当前时间不匹配,它给出'0'。如果匹配,它返回'1',并且弹出窗口显示在所有浏览器中。但是可以用信号 R 代替每 30 秒检查一次数据库吗?有什么办法可以让整个事情向 R 发出信号?
【问题讨论】:
标签:
asp.net-mvc
signalr
reminders
【解决方案1】:
您可以使用 System.Threading.Timer 创建对客户端和服务器端的定期方法调用。根据为股票创建的示例项目
_timer = new Timer(UpdateStockPrices, null, _updateInterval, _updateInterval);
它创建Event-Delegate并及时调用UpdateStockPrices事件,周期为__updateInterval。
在此事件(下面给出的代码)中,您可以将剩余消息从服务器广播到所有客户端或与该剩余部分关联的客户端。
您可以将代码编写为:-
Clients.All.updateStockPrice(stock);
您可以从链接中参考计时器:-
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
【解决方案2】:
是的,您可以在 appdomain 范围、应用程序范围或集线器级别使用 Timer。只需从 nuget 获取样本,称为“Microsoft.AspNet.SignalR.Sample”。它实现了定期向所有客户端广播更改的股票计时器。