ASP.Net MVC C#在会话TimeOut / Browser关闭时发送通知

时间:2016-02-16 06:02:46

标签: c# asp.net-mvc

我的应用程序需要收集所有更新记录的通知,然后在用户会话/浏览器关闭后,它将通过短信发送批准者的更新记录摘要。 (*我们的SMS是基于服务器的,这就是为什么我只需要将recepint消息插入某个表。)

我需要帮助创建一个关于如何实现上述要求的概念。

1 个答案:

答案 0 :(得分:0)

我至少有两种方法可以考虑如何做到这一点:

  1. 正如Mohayemin建议的 - websockets - 在ASP.NET中,您可以使用SignalR。这将允许您在客户端和服务器之间建立双向通道,并在关闭时收到通知。此技术的问题在于,如果用户关闭窗口并在此之后打开另一个窗口,您可能会因为第一个会话结束而发送SMS,但您将无法对第二个会话的打开做出反应。不确定是否会让你烦恼。

  2. 对于您从用户收到的每个请求(如果您希望在页面上打开浏览器的空闲用户计为活动用户,您可以每分钟发送一次Ajax请求),您更新了时间戳。数据库,它将保存用户上次活动的值。然后创建一个像cron一样工作的后台线程,因此它会被启动,例如每5分钟一次,列出最后一次活动早于您的限制(例如15分钟)的所有用户。如果你找到一些,发送短信并标记你处理了这一个(以避免双重发送)。此解决方案解决了在第一次关闭后提前重新打开会话的问题,因此可能是您要使用的会话。