用于匿名用户的ASP.NET MVC回合制游戏

时间:2014-12-15 14:37:46

标签: c# asp.net-mvc asp.net-ajax

我是 ASP.NET MVC 的新手。

我正在尝试实施游戏Rock-Paper-Scissors

实施要求:

  1. 允许匿名用户玩游戏(游戏必须是私密的)
  2. SignalR 禁止使用
  3. 我读了类似的问题(this)。我还有疑问。

    在哪里创建Session Player Guid(第一次)?

    Dictionary<player, game>(提到here)必须是线程安全的吗? 或者我可以在Global.asax.cs中将其用作静态变量?

    更新

    将访客玩家信息存储在静态字典中是否可以?

    然后如何删除过期的会话播放器信息?

    我想我需要在Session_Start中实施Session_EndGlobal.asax方法。 会话过期时删除播放器信息。是不是好方法?

1 个答案:

答案 0 :(得分:1)

会话播放器GUID应该在玩家点击PLAY按钮或任何应该是游戏开始的触发器的阶段生成。

而不是Dictionary<player, game>使用ConcurrentDictionary。阅读here。它应该是静态的,而不是线程静态的。在那里你应该存储你的游戏会话。

如果用户刷新页面或短时间断开连接,您应该允许他恢复他的游戏。要做到这一点,你可以将你的游戏会话guid存储在coockie或本地存储(将在标题中发送)并在服务器端进行分析并决定开始新游戏或继续旧游戏。

很简单。