gpt4 book ai didi

java - session 处理问题 - HttpSession 和 Websockets 创建的 session

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:11 24 4
gpt4 key购买 nike

我希望有人能解答我的问题。在我们的 gwt-webapp 中,我们通常使用 HttpSession 来创建用户 session 。因此,如果有人想登录我们的游戏,我们通过 HttpSession 设置 session

public void setSessionID(String id) {HttpSession httpSession = getThreadLocalRequest().getSession(true); httpSession.setAttribute("id", id); }

View 的顺序是:登录 View ->主页 View ->大厅 View

现在,当进入大厅时,他将通过 websocket 连接与聊天室连接。现在的问题是,我认为 websocketConnection 也会创建一个 sessionObject 。在 jetty v-8.1.2.v20120308 上测试应用程序显示:

如果第一个用户登录游戏并通过聊天功能直接加入大厅,而另一个用户也这样做,他们可以互相聊天 - 所以一切看起来都很好...

但是如果两个用户在有人加入大厅之前同时登录游戏,然后加入大厅,第二个进入大厅的用户会获取第一个进入大厅的所有参数,这样就出现了两个用户具有相同的身份...不知道出了什么问题。看来第一个用户的 websocketSession 覆盖了第二个玩家登录的 httpSession...感谢您提供任何解决方案或想法,这可能是问题所在。

最佳答案

这是 Jetty 中的一个错误,它会在握手后清除/销毁所有内容。解决方案是立即关闭 session 并用该假 session 包装请求。您还可以使用 Atmosphere Framework[1],它可以透明地为您解决该问题(以及更多问题。

--让弗朗索瓦

[1] https://github.com/Atmosphere/atmosphere

关于java - session 处理问题 - HttpSession 和 Websockets 创建的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12183908/

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