1

我有一个功能,我需要在创建约会时设置的时间间隔之前提醒客户他们的约会。

示例:客户今天下午 4:00
登录系统。 如果客户在今天下午 5:00 有一个约会,并且提醒分钟为 10。 这将调用一个带有哔声的弹出窗口,该弹出窗口必须在今天下午 4:50(即实际约会开始时间前 10 分钟)出现。 我将所有约会的开始时间、结束时间(连同日期)存储在后端表中以供客户数量使用。


请指导我实时实现以下目标:
(1)在下午 4.50 调用此弹出窗口
(2)播放存储在数据库中的声音文件

根据我的搜索,有一种方法可以使用 mvc 中的信号器概念来做到这一点。我在这个 lnk 中浏览了聊天应用程序的示例。 http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

这会在事件发生时调用集线器。但在我的应用程序中,如果开始时间与当前时间匹配,它必须作为提醒来显示弹出窗口。如何实时获取。任何想法都可以帮助我。

4

3 回答 3

1

一切都可以完成,但正如 ChristianDev 所说,SignalR 不能像这样开箱即用......我认为无论如何你都可以用 SignalR 做到这一点,但你有一些挑战......

  1. 您必须在服务器上维护客户约会的状态
  2. 当客户端在页面之间导航时,此状态必须在连接之间保持不变
  3. 当事件触发时,您必须将消息发送到正确的客户端
  4. 如果该客户端在页面之间(脱机),则必须存储该消息,直到客户端重新联机,然后将其发送给他/她。

编辑:编写一个简单的通知应用程序似乎很有趣。你可以很容易地将它移植到 SignalR。实时通知示例

于 2013-10-09T09:40:19.180 回答
1

这可能是使用 WebSockets 的好时机。(看看Socket.IO,它是 .NET 版本的SocketIO4Net

这个想法是有一个业务逻辑服务器端来管理哪些客户需要提醒预约。然后它使用 WebSocket 发送提醒信号。如果客户已登录,js 客户端会捕捉到信号,然后您决定如何显示它。

要播放存储在数据库中的声音,您可以执行返回声音文件或其他内容的操作服务器端,然后使用 HTML 5 标签播放声音。

希望这可以帮助。

于 2013-10-08T15:30:33.470 回答
1

windows service您可以更改方法,并使用电子邮件/短信提醒用户约会,这意味着用户无需登录 Web 应用程序即可接收提醒。

SignalR如果您想使用诸如独一无二的connectionId

开箱即用的 SignalR 不能像这样工作 - 但是,请在此处查看我的问题以获得一些帮助:Update UI with SignalR and Knockout when手动更新数据库

编辑:补充一下,如果你正在寻找一个非常好的通知插件,那么看看 John Papa's ToastR,它是一个小的 JS/Css 插件,它通过“定时的 Outlook 样式通知”进行通知。

于 2013-10-08T15:38:44.643 回答