【问题标题】:How a browser can recognize a disconnection/navigate away from browser by user in ASP.NET C#浏览器如何识别用户在 ASP.NET C# 中的断开连接/导航离开浏览器
【发布时间】:2012-09-25 01:24:05
【问题描述】:
假设 2 个玩家在 2 个不同的浏览器上玩游戏。游戏状态存储在会话变量中,每个浏览器都有不同的会话,但游戏对象需要两个玩家向前移动。游戏管理员确保两个不同的会话已登录,然后让玩家继续进入游戏页面。这将是一个多页游戏,具有登录、选择颜色和结束游戏。断开玩家连接的最简单方法是等到游戏结束,玩家可以选择他们不想再玩了。
如果玩家离开游戏页面怎么办,我们如何让其他玩家知道游戏已经终止,这样我们就可以干净利落地断开剩余玩家的连接,让他回到登录页面,在这个页面中,我们等待新玩家。浏览器如何监听两个会话之间的断开连接?
【问题讨论】:
标签:
c#
asp.net
session
browser
disconnect
【解决方案1】:
会话不在浏览器端维护。两个浏览器都不知道会话。你可以有多种策略来实现这个结果
有许多可用的客户端 JavaScript 可以检测到用户正在离开页面并显示适当的警告或向服务器发送用户已退出页面的消息。他们还可以检测到浏览器窗口正在关闭。您可以使用其中之一。
在服务器端,您必须检查用户的最后响应时间。当用户在预定义的时间内没有响应时,您可以认为他/她已断开连接。
您可以在 asp.net 中配置会话超时。会话到期时,您还将在 global.asax 文件中获得一个事件。这样,您将能够确定用户已断开连接。
我建议您应该使用这三种方法的组合来获得结果。如果其中一个失败,另一个会发挥作用。