在ASP.NET C#中,浏览器如何识别用户断开连接/导航离开浏览器



假设两个玩家在两个不同的浏览器上玩游戏。游戏状态存储在会话变量中,每个浏览器都有不同的会话,但游戏对象需要两个玩家向前移动。在让玩家进入游戏页面之前,游戏经理确保已经登录了两个不同的会话。这将是一个多页游戏,有一个登录,选择颜色,并结束游戏。断开玩家连接最干净的方法是等到游戏结束,玩家可以选择不想再玩了。

如果一名玩家离开游戏页面,我们如何让另一名玩家知道游戏已经终止,这样我们就可以干净地断开剩余玩家的连接,让他回到登录页面,在那里我们等待新玩家。浏览器如何监听两个会话之间的断开连接?

会话不在浏览器端维护。两个浏览器都不知道会话。你可以有多种策略来实现这个结果

  1. 有许多客户端Java脚本可用,它们可以检测到用户正在离开页面,并显示适当的警告或向服务器发送用户已退出页面的消息。它们还可以检测到浏览器窗口正在关闭。你可以使用其中一个。

  2. 在服务器端,您必须检查用户的最后响应时间。当用户在预定义的时间内没有响应时,您可以认为他/她已断开连接。

  3. 您可以在asp.net中配置会话超时。当会话到期时,您还会在global.asax文件中获得一个事件。通过这种方式,您将能够确定用户已断开连接。

我建议您应该使用这三种方法的组合来实现结果。如果其中一个失败了,另一个就会上场。

最新更新