你们中的一些人可能知道,Facebook 正在使用这种“系统”,当用户 session 因不活动或远程 session 关闭而丢失时,会显示一个弹出窗口。我已经看到并阅读了这个 Node.js question但没有找到任何东西。
我在一家加拿大计算机公司工作,我们的主要产品是 CRM,所有内容均使用经典 ASP 进行编码。
我知道。
整个基于 Web 的应用程序运行良好,并且由于我们在我们的服务器上托管站点,所以如果需要,可以打开端口并使用套接字。
这里是主要问题:有没有一种方法(可能使用 javascript 库或 jQuery 插件?)在 session 过期时触发客户端事件或者只是由于 session 过期而丢失例如服务器重置?
当然,最好的办法是使用另一种解决方案,而不是每秒发送一个 AJAX 请求来验证用户 session 是否仍然存在。如果有帮助,最多可同时连接大约 3,500 个用户,我们的服务器可以轻松处理更多流量。这些服务器在 Windows Server 2008 和 IIS 7 上运行。
很遗憾,我无法为这个问题提供任何代码块或屏幕截图,因为没有什么可调试的。
一个想法是对不返回任何内容并卡在那里的文件使用 AJAX 请求。如果 session 丢失(不活动或服务器重置),AJAX 请求将触发错误并触发“错误”函数。那是需要考虑的事情吗?
否则,还有其他建议吗?
最佳答案
一种方法是将客户端计时器设置为与 session 过期时间相同的时间。
假设您的 session 设置为在 20 分钟后过期。当页面加载时 - 客户端计时器设置为 20 分钟启动。如果用户进行任何服务器交互(提交表单等) - 计时器将重置。但是,如果在这 20 分钟内没有任何反应 - 计时器开始倒计时,您将获得您的事件。
关于javascript - session 丢失时触发客户端事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18128997/