我有一个功能,我需要在创建约会时设置的时间间隔之前提醒客户他们的约会。
示例:
客户今天下午4:00 登录系统
如果客户今天下午5:00设置了预约,并且提醒分钟设置为10
这将调出一个带有beepsound的弹出窗口,该弹出窗口必须在今天下午4:50(即实际预约开始时间前10分钟)出现。
我有所有约会,其中包括存储在后端表中的开始时间,结束时间(以及日期),以供客户使用。
请指导我实时发送以下内容:
(1)在4.50PM时调用此弹出窗口
(2)播放存储在数据库中的声音文件
从我的搜索中,有一种方法可以使用mvc中的signalr概念来实现这一点。我在这个lnk中浏览了聊天应用程序示例。 http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr
这会在事件发生时调用集线器。但在我的应用程序中,如果开始时间与当前时间匹配,它必须作为提示显示弹出窗口。如何实时获得这个。任何想法都可以帮助我。
答案 0 :(得分:1)
这可能是使用WebSockets的好方法。 (看看Socket.IO,它是.NET版本SocketIO4Net)
我们的想法是拥有一个业务逻辑服务器端来管理客户要提醒的约会。然后它使用WebSocket发送提醒信号。如果客户已登录,则js客户端将捕获信号并确定您希望如何显示该信号。
要播放存储在数据库中的声音,您可以执行返回声音文件或其他内容的动作服务器端,然后使用HTML 5标记播放声音。
希望这有帮助。
答案 1 :(得分:1)
您可以更改方法,并使用windows service
,电子邮件/短信用户提醒他们约会,这意味着用户不需要登录到Web应用程序以接收提醒。
如果您想使用SignalR
等技术,则需要保留已连接用户(及其用户名)的记录,然后在预约到期时,您需要触发要发送到的事件相关用户,基于唯一connectionId
。
SignalR,开箱即用,不能像这样工作 - 但是,请在这里查看我的问题以寻求帮助:Update UI with SignalR and Knockout when manually updating DB
编辑:要添加到此,如果您正在寻找一个非常好的通知插件,那么请看看John Papa的ToastR
,它是一个小型JS / Css插件通过'定时,展望风格通知'通知。
答案 2 :(得分:1)
所有事情都可以完成,但正如ChristianDev所说SignalR不能像开箱即用那样......我认为无论如何你都可以用SignalR做到这一点但是你有一些挑战......