背景:我正在使用 C# 代码隐藏创建一个非常简单的类似聊天室的 ASP.NET 页面。当前用户/聊天消息显示在位于 AJAX 更新面板内的控件中,并使用计时器 - 它们每隔几秒从数据库中提取信息。
我试图找到一种简单的方法来处理将用户退出浏览器时的状态设置为“离线”,而不是点击“注销”按钮。 IsOnline 的“离线”状态当前仅为 1 个字符 (y/n)。
到目前为止,我已经用Javascript研究了window.onbeforeunload,在这个事件上设置了一个带有函数的隐藏表单变量 - >当然,问题是,我仍然需要在我的代码隐藏中的某个地方测试这个隐藏表单变量最终的服务器端数据库查询,有效地将用户设置为离线。
我可能完全混淆了这个可能简单的问题!当然,我会很感激任何完全不同的替代建议。
Thanks
我怀疑你找错了树。请记住,用户可能会突然失去互联网连接,浏览器可能崩溃,或者使用红色大开关关闭计算机。在某些情况下,服务器根本不会再收到浏览器的消息。
做到这一点的最好方法是使用“死人开关”。既然您说他们每隔几秒就从数据库中提取信息,请利用这个机会存储(在数据库中)您上次从给定客户端收到消息的时间戳。
每隔一分钟左右,在服务器上执行一次查询以查找几分钟内未轮询的客户端,并将用户设置为离线......所有这些都在服务器上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)