【问题标题】:Invoke popup as reminder in asp.net MVC在 asp.net MVC 中调用弹出窗口作为提醒
【发布时间】:2013-10-08 15:16:30
【问题描述】:

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

示例
一位客户今天在 下午 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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    要播放存储在数据库中的声音,你可以做一个动作服务器端返回声音文件或其他东西,然后使用 HTML 5 标签来播放声音。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        你可以改变方法,使用windows serviceemail/sms'ing用户提醒他们约会,这意味着用户不需要登录接收提醒的网络应用程序。

        如果您想使用SignalR 等技术,您需要记录已连接的用户(及其用户名),然后在约会到期时,您需要触发一个事件发送给用户有问题,基于唯一的connectionId

        开箱即用的 SignalR 不能像这样工作 - 但是,请在此处查看我的问题以寻求帮助:Update UI with SignalR and Knockout when manually updating DB

        编辑:补充一点,如果你正在寻找一个非常好的通知插件,那么看看 John Papa 的 ToastR,它是一个小的 JS/Css 插件,它通过一个“定时的、outlook 风格的通知”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-04-28
          • 1970-01-01
          • 1970-01-01
          • 2011-06-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多