2012-11-03 33 views
3

我正在开发一个转一圈的策略游戏,我试图做多人部分。我从来没有做过类似的事情,但我收到了使用rpc的强烈建议。我的多人游戏将托管在主服务器上,基本上玩家发送他所做的并接收新游戏状态。如果我明白,使用rpc体系结构,服务器只能回复他收到的请求。因此,我认为玩家首先登录到服务器,发送凭据,然后通过rpc发送他所做的,并且每尝试刷新其当前游戏(通过发送请求“刷新”)x毫秒。我不明白的是如何用这个我可以有一个记忆的认证。我是否需要为每个请求重新记录日志(并发送凭据)(这似乎是一个非常多的信息发送)。如何识别来自我目前授予身份验证的人的请求?我如何处理连贯但分离的请求之间的逻辑?持续认证与finagle

回答

3

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

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

+0

它有没有很大的安全问题,它要求每个请求一个冗余的信息没有? – Atol