3

我正在开发回合制策略游戏,并且正在尝试进行多人游戏。我从未做过类似的事情,但我收到了使用 rpc 的强烈建议。我的多人游戏将托管在主服务器上,基本上玩家发送他所做的事情并接收游戏的新状态。如果我理解正确,使用 rpc 架构,服务器只能回复他收到的请求。

所以我认为玩家首先登录服务器,发送凭据,他通过 rpc 发送他所做的事情,并且每 x 毫秒他尝试刷新他当前的游戏(通过发送请求“刷新”)。我不明白的是,我如何才能记住认证。我是否需要为每个请求每次重新登录(并发送凭据)(这似乎需要发送大量信息)。如何识别来自我当前已授予身份验证的人的请求?如何处理连贯但分离的请求之间的逻辑?

4

1 回答 1

3

一种可能的解决方案是在服务器端维护会话。

当用户登录时,您可以生成会话 ID 并将会话 ID 存储到服务器上的会话数据(用户 ID 等)映射。会话数据可能存储在内存中或一些快速键值存储中,如 redis 或 memcached。存储数据后,您可以将会话 ID 发送回客户端。现在您可以将此会话 ID 发送到服务器以识别用户。

于 2012-11-03T08:09:27.367 回答