gpt4 book ai didi

c++ - 在线游戏的 session 通常如何存储?

转载 作者:可可西里 更新时间:2023-11-01 02:45:38 24 4
gpt4 key购买 nike

目前,我的游戏是这样运行的。

用户使用 TCP 连接到服务器。此时服务端还没有分配播放器对象,就分配给了TCP客户端对象。

当用户发送带有用户名和密码哈希值的 LOGIN 消息时,服务器会检查数据库以查看所有内容是否相符,如果相符,则发送 LOGIN_ATTEMPT_RESULT 消息并返回 true。然后,服务器分配一个玩家,然后向玩家发送大厅状态,从那时起,当服务器收到来自该用户的消息时,它会处理它并进行通信。

我不保留 session ID 或任何东西,因为它似乎没有必要。

这基本上就是这样的游戏进行身份验证和通信的方式,还是我遗漏了一些重要的东西?

谢谢

最佳答案

保留 session ID 很好,因为它使 TCP 数据包注入(inject)攻击(序列猜测)更加困难,并且即使 TCP 连接由于某种原因丢失,它也允许登录的连续性。这样,“ session ”和“连接”是不同的,后者可以根据需要重新建立。此外,如果您扩展到多台机器, session ID 可以用作在主机之间传递的一种方式(连接将被重新创建,但 session 仍然存在)。最后, session ID 可以用作数据库 key (同样,用于在服务器之间传递)。

如果您不需要这些,那么您可以放弃 session 层。不过,这似乎并没有节省多少。

关于c++ - 在线游戏的 session 通常如何存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10843935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com