ASP.Net MVC C# 在会话超时/浏览器关闭时发送通知

本文关键字:通知 浏览器 MVC Net 超时 会话 ASP | 更新日期: 2023-09-27 18:34:41

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

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

ASP.Net MVC C# 在会话超时/浏览器关闭时发送通知

我至少可以通过两种方式来考虑如何做到这一点:

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

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