0

假设 2 个玩家在 2 个不同的浏览器上玩游戏。游戏状态存储在会话变量中,每个浏览器都有不同的会话,但游戏对象需要两个玩家向前移动。游戏管理员确保两个不同的会话已登录,然后让玩家继续进入游戏页面。这将是一个多页游戏,具有登录、选择颜色和结束游戏。断开玩家连接的最简单方法是等到游戏结束,玩家可以选择他们不想再玩了。

如果一个玩家离开游戏页面怎么办,我们如何让另一个玩家知道游戏已经终止,所以我们可以干净地断开剩余玩家的连接,将他带回登录页面,我们在其中等待一个新玩家。浏览器如何监听两个会话之间的断开连接?

4

1 回答 1

1

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

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

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

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

我建议您应该使用所有这三种方法的组合来获得结果。如果其中一个失败,另一个会发挥作用。

于 2012-10-04T04:56:17.393 回答