我正在开发一个由单个页面组成的 Web 应用程序 (ASP.NET) 游戏,在该页面上,会有一个类似于 Monopoly 的游戏板。我正在尝试确定最好的架构方法是什么。到目前为止,我确定的主要要求是:
- 最多六个用户共享一个游戏状态对象。
- 用户需要保持(相对)最新的游戏当前状态,即轮到谁了,活跃用户刚刚滚动了什么,其他用户有多少钱,等等。
我曾考虑将游戏状态保存在数据库中,但是当游戏状态对象(例如,在缓存中)可以保持最新时,继续更新数据库似乎有点过头了。例如,流程可能是这样的:
- 接收来自用户的数据请求。
- 在数据库中查找数据。从该数据创建对象。
- 验证用户是否有权根据游戏状态执行请求(即确保确实轮到他们或有足够的钱购买该属性)。
- 更新游戏对象。
- 将游戏对象写回数据库。
- 对每个请求重复。
考虑到单个服务器将服务多个并发游戏。
- 我曾考虑过使用 AJAX 向 ASP.NET 页面发出请求。
- 我曾考虑过使用 Silverlight 对 Web 服务使用 AJAX 请求。
- 我曾考虑在 Silverlight 中使用 WCF 双工通道。
我无法弄清楚最好的方法是什么。似乎都有自己的缺点。有没有人有这种事情的经验并愿意分享这些经验?如果我太模棱两可,请随时提出您自己的问题!谢谢。
更新:是否有人对如何根据我上面提到的三个选项实现与服务器的连接有任何建议?