我正在尝试将逻辑从基于实时 .NET 的套接字服务器迁移到基于 RESTful 的 ASP.net Web api。原因是我们的游戏设计发生了变化,我们不再需要对套接字服务器进行任何实时处理。
为了迁移,我需要做以下事情,但我没有使用 Asp.net 的经验,所以希望有人能指出我正确的方向:
1) 在套接字服务器中,当玩家建立连接时,我们将该玩家的所有数据从数据库加载到 Player 类的实例中,例如玩家的库存。我们在服务器端的连接对象上保持这个实例处于活动状态,这样只要 tcp 套接字连接处于活动状态,这个 Player 对象就相当于在内存中保存玩家数据的缓存。但是我不知道将这个 Player 实例放在 Asp.net Web API 中的等效位置,这会是会话状态吗?
2) 游戏有所有连接的客户端都可以使用的静态数据,例如武器造成的伤害。我们将这些数据从数据库加载到服务器应用程序实例上的 StaticData 对象中。在 Asp.net web api 中保存应用程序范围数据的地方是什么?
3)我们不使用 MVC 架构,目前我们在客户端和服务器之间进行通信的方式是我们发出请求(例如出售商品),服务器验证并处理请求,并通过序列化将更新的状态发送回客户端更新后的数据到 object[] 数组中。似乎对于 asp.net MVC,很多事情都是“自动的”,相当于在 asp.net 中执行“向服务器发送请求 -> 服务器进程并发送回更新的状态 -> 客户端反序列化状态” Web API 世界?