2012-10-04 176 views
0

假设2个玩家在2个不同的浏览器上玩游戏。游戏状态存储在会话变量中,每个浏览器有不同的会话,但游戏对象需要两个玩家前进。游戏经理确保两个不同的会话已经签署,然后让玩家进入游戏页面。这将是一个多页面的游戏,有登录,挑选颜色和结束游戏。断开玩家的最简单的方法是等到游戏结束,玩家可以选择他们不想玩的东西。浏览器如何识别ASP.NET/C#中的用户断开浏览/浏览器浏览器#

如果玩家离开游戏页面,我们怎么能让其他玩家知道游戏已经结束,所以我们可以干净地断开剩下的玩家,让他回到登录页面,其中我们等待一个新玩家。浏览器如何侦听两个会话之间的断开连接?

回答

1

会议不在浏览器端维护。浏览器都不知道会话。你可以有多个策略来达到这个结果

  1. 有许多客户端的JavaScript可以检测到用户离开页面,并显示相应的警告或将消息发送到用户已退出服务器页。他们还可以检测到浏览器窗口正在关闭。你可以使用其中之一。

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

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

我会建议您应该使用所有三个组合来实现结果。如果其中一个失败了,另一个就会起作用。